System.ComponentModel.TypeDescriptor.AddProvider C# (CSharp) Method

AddProvider() private method

private AddProvider ( TypeDescriptionProvider provider, object instance ) : void
provider TypeDescriptionProvider
instance object
return void
        public static void AddProvider(TypeDescriptionProvider provider, object instance)
        {
            if (provider == null)
            {
                throw new ArgumentNullException(nameof(provider));
            }

            if (instance == null)
            {
                throw new ArgumentNullException(nameof(instance));
            }
            bool refreshNeeded;

            // Get the root node, hook it up, and stuff it back into
            // the provider cache.
            lock (s_providerTable)
            {
                refreshNeeded = s_providerTable.ContainsKey(instance);
                TypeDescriptionNode node = NodeFor(instance, true);
                TypeDescriptionNode head = new TypeDescriptionNode(provider);
                head.Next = node;
                s_providerTable.SetWeak(instance, head);
                s_providerTypeTable.Clear();
            }

            if (refreshNeeded)
            {
                Refresh(instance, false);
            }
        }

Same methods

TypeDescriptor::AddProvider ( TypeDescriptionProvider provider, Type type ) : void

Usage Example

Example #1
0
        public static void Add(Type type)
        {
            TypeDescriptionProvider parent = TypeDescriptor.GetProvider(type);

            TypeDescriptor.AddProvider(new HyperTypeDescriptionProvider(parent), type);
        }