diff --git a/src/Markup/Perspex.Markup.Xaml/PerspexXamlLoader.cs b/src/Markup/Perspex.Markup.Xaml/PerspexXamlLoader.cs index 2c2ee23510..b31fc9c85d 100644 --- a/src/Markup/Perspex.Markup.Xaml/PerspexXamlLoader.cs +++ b/src/Markup/Perspex.Markup.Xaml/PerspexXamlLoader.cs @@ -19,11 +19,13 @@ namespace Perspex.Markup.Xaml /// public class PerspexXamlLoader : XmlLoader { + private static PerspexParserFactory s_parserFactory; + /// /// Initializes a new instance of the class. /// public PerspexXamlLoader() - : this(new PerspexParserFactory()) + : this(GetParserFactory()) { } @@ -126,6 +128,16 @@ namespace Perspex.Markup.Xaml } } + private static PerspexParserFactory GetParserFactory() + { + if (s_parserFactory == null) + { + s_parserFactory = new PerspexParserFactory(); + } + + return s_parserFactory; + } + /// /// Gets the URI for a type. ///