private void CheckAndWork(Assembly loadedAssembly) { List<Action<AttributeTableBuilder>> currentDelayedWorkItems; if (this.DelayedWorkItems.TryGetValue(loadedAssembly.GetName().Name, out currentDelayedWorkItems)) { Action delayedRegisterMetadataWork = new DelayedRegisterMetadataWorkContext(currentDelayedWorkItems).Work; // Retrieve the top level type descriptor from the stack TypeDescriptionProvider currentTypeDescriptor = TypeDescriptor.GetProvider(typeof(object)); // Intercept any existing changes. TypeDescriptor.AddProvider(new TypeDescriptionProviderInterceptor(currentTypeDescriptor, delayedRegisterMetadataWork), typeof(object)); } }
private void CheckAndWork(Assembly loadedAssembly) { List <Action <AttributeTableBuilder> > currentDelayedWorkItems; if (this.DelayedWorkItems.TryGetValue(loadedAssembly.GetName().Name, out currentDelayedWorkItems)) { Action delayedRegisterMetadataWork = new DelayedRegisterMetadataWorkContext(currentDelayedWorkItems).Work; // Retrieve the top level type descriptor from the stack TypeDescriptionProvider currentTypeDescriptor = TypeDescriptor.GetProvider(typeof(object)); // Intercept any existing changes. TypeDescriptor.AddProvider(new TypeDescriptionProviderInterceptor(currentTypeDescriptor, delayedRegisterMetadataWork), typeof(object)); } }