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