public void TypeNameShouldNotSetType() { var attr = new XamlDeferLoadAttribute(typeof(TestDeferredLoader).AssemblyQualifiedName, typeof(DeferredLoadingChild).AssemblyQualifiedName); Assert.IsNull(attr.LoaderType, "#1"); Assert.IsNull(attr.ContentType, "#2"); }
public void TypeShouldReturnName() { var attr = new XamlDeferLoadAttribute(typeof(TestDeferredLoader), typeof(DeferredLoadingChild)); Assert.AreEqual(typeof(TestDeferredLoader).AssemblyQualifiedName, attr.LoaderTypeName, "#1"); Assert.AreEqual(typeof(DeferredLoadingChild).AssemblyQualifiedName, attr.ContentTypeName, "#2"); }
public Type[] GetAttributeTypes(Type attributeType, int count) { if (CustomAttributeProvider != null) { object[] attributes = CustomAttributeProvider.GetCustomAttributes(attributeType, false); if (attributes.Length == 0) { return(null); } Debug.Assert(attributeType == typeof(XamlDeferLoadAttribute)); Debug.Assert(count == 2); XamlDeferLoadAttribute tca = (XamlDeferLoadAttribute)attributes[0]; Type converterType = XamlNamespace.GetTypeFromFullTypeName(tca.LoaderTypeName); Type contentType = XamlNamespace.GetTypeFromFullTypeName(tca.ContentTypeName); return(new Type[] { converterType, contentType }); } try { CustomAttributeData cad = GetAttribute(attributeType); if (cad == null) { return(null); } return(ExtractTypes(cad, count)); } catch (CustomAttributeFormatException) { CustomAttributeProvider = Member; return(GetAttributeTypes(attributeType, count)); } }
public Type[] GetAttributeTypes(Type attributeType, int count) { if (this.CustomAttributeProvider != null) { object[] customAttributes = this.CustomAttributeProvider.GetCustomAttributes(attributeType, false); if (customAttributes.Length == 0) { return(null); } XamlDeferLoadAttribute attribute = (XamlDeferLoadAttribute)customAttributes[0]; Type typeFromFullTypeName = XamlNamespace.GetTypeFromFullTypeName(attribute.LoaderTypeName); Type type2 = XamlNamespace.GetTypeFromFullTypeName(attribute.ContentTypeName); return(new Type[] { typeFromFullTypeName, type2 }); } try { CustomAttributeData cad = this.GetAttribute(attributeType); if (cad == null) { return(null); } return(this.ExtractTypes(cad, count)); } catch (CustomAttributeFormatException) { this.CustomAttributeProvider = this.Member; return(this.GetAttributeTypes(attributeType, count)); } }