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