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.
///