private static void RegisterTypeDescriptorInterop(Type target)
 {
     if (!registeredRedirect.ContainsKey(target))
     {
         var r = new ContainerUnawareProviderRedirect(target);
         TypeDescriptor.AddProvider(r, target);
         registeredRedirect[target] = r;
     }
     else
     {
         // force a uncache of the information from TypeDescriptor
         //
         TypeDescriptor.RemoveProvider(registeredRedirect[target], target);
         TypeDescriptor.AddProvider(registeredRedirect[target], target);
     }
 }
 public static void AddAttribute(Type target, Func <MemberInfo, IEnumerable <Attribute>, IEnumerable <Attribute> > provider, CompositionContainer container)
 {
     ContainerUnawareProviderRedirect.GetRedirect(container)[target] = new MetadataStoreProvider(target, provider);
     RegisterTypeDescriptorInterop(target);
 }
Пример #3
0
 private static void RegisterTypeDescriptorInterop(Type target)
 {
     if (!registeredRedirect.ContainsKey(target))
     {
         var r = new ContainerUnawareProviderRedirect(target);
         TypeDescriptor.AddProvider(r, target);
         registeredRedirect[target] = r;
     }
     else
     {
         // force a uncache of the information from TypeDescriptor
         //
         TypeDescriptor.RemoveProvider(registeredRedirect[target], target);
         TypeDescriptor.AddProvider(registeredRedirect[target], target);
     }
 }