public static void RegisterMetadataFromAttributes(this IXamlTypeRepository typeRepository, IEnumerable <Type> types) { var gatheredDependencies = types.GatherAttributesFromMembers <DependsOnAttribute, Tuple <PropertyInfo, string> >((propertyInfo, attribute) => new Tuple <PropertyInfo, string>(propertyInfo, attribute.PropertyName)); foreach (var tuple in gatheredDependencies) { var metadata = new Metadata(); var type = tuple.Item1.DeclaringType; var property = tuple.Item1.Name; var dependsOn = tuple.Item2; metadata.SetMemberDependency(property, dependsOn); typeRepository.RegisterMetadata(type, metadata); } }
public static void RegisterMetadata <T>(this IXamlTypeRepository typeRepository, Metadata <T> metadata) { typeRepository.RegisterMetadata(typeof(T), metadata); }