public void GetXamlTypeAndAllXamlTypes () { var ctx = new XamlSchemaContext (new Assembly [] {typeof (string).Assembly}); // build with corlib. Assert.AreEqual (0, ctx.GetAllXamlTypes (XamlLanguage.Xaml2006Namespace).Count (), "#0"); // premise var xt = ctx.GetXamlType (typeof (string)); Assert.IsNotNull (xt, "#1"); Assert.AreEqual (typeof (string), xt.UnderlyingType, "#2"); Assert.IsTrue (object.ReferenceEquals (xt, ctx.GetXamlType (typeof (string))), "#3"); // non-primitive type example Assert.IsTrue (object.ReferenceEquals (ctx.GetXamlType (GetType ()), ctx.GetXamlType (GetType ())), "#4"); // after getting these types, it still returns 0. So it's not all about caching. Assert.AreEqual (0, ctx.GetAllXamlTypes (XamlLanguage.Xaml2006Namespace).Count (), "#5"); }