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"); }