System.ComponentModel.TypeDescriptor.TypeDescriptionNode.DefaultTypeDescriptor.ICustomTypeDescriptor C# (CSharp) Method

ICustomTypeDescriptor() private method

ICustomTypeDescriptor implementation.
private ICustomTypeDescriptor ( PropertyDescriptor pd ) : object
pd PropertyDescriptor
return object
                object ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor pd)
                {
                    // Check to see if the provider we get is a ReflectTypeDescriptionProvider.
                    // If so, we can call on it directly rather than creating another
                    // custom type descriptor

                    TypeDescriptionProvider p = _node.Provider;
                    ReflectTypeDescriptionProvider rp = p as ReflectTypeDescriptionProvider;
                    object owner;

                    if (rp != null)
                    {
                        owner = rp.GetPropertyOwner(_objectType, _instance, pd);
                    }
                    else
                    {
                        ICustomTypeDescriptor desc = p.GetTypeDescriptor(_objectType, _instance);
                        if (desc == null) throw new InvalidOperationException(SR.Format(SR.TypeDescriptorProviderError, _node.Provider.GetType().FullName, "GetTypeDescriptor"));
                        owner = desc.GetPropertyOwner(pd);
                        if (owner == null) owner = _instance;
                    }

                    return owner;
                }
            }

Same methods

TypeDescriptor.TypeDescriptionNode.DefaultTypeDescriptor::ICustomTypeDescriptor ( ) : AttributeCollection
TypeDescriptor.TypeDescriptionNode.DefaultTypeDescriptor::ICustomTypeDescriptor ( ) : System.ComponentModel.EventDescriptor
TypeDescriptor.TypeDescriptionNode.DefaultTypeDescriptor::ICustomTypeDescriptor ( ) : EventDescriptorCollection
TypeDescriptor.TypeDescriptionNode.DefaultTypeDescriptor::ICustomTypeDescriptor ( Attribute attributes ) : EventDescriptorCollection
TypeDescriptor.TypeDescriptionNode.DefaultTypeDescriptor::ICustomTypeDescriptor ( ) : PropertyDescriptor
TypeDescriptor.TypeDescriptionNode.DefaultTypeDescriptor::ICustomTypeDescriptor ( ) : PropertyDescriptorCollection
TypeDescriptor.TypeDescriptionNode.DefaultTypeDescriptor::ICustomTypeDescriptor ( Attribute attributes ) : PropertyDescriptorCollection
TypeDescriptor.TypeDescriptionNode.DefaultTypeDescriptor::ICustomTypeDescriptor ( ) : TypeConverter
TypeDescriptor.TypeDescriptionNode.DefaultTypeDescriptor::ICustomTypeDescriptor ( Type editorBaseType ) : object
TypeDescriptor.TypeDescriptionNode.DefaultTypeDescriptor::ICustomTypeDescriptor ( ) : string
TypeDescriptor.TypeDescriptionNode.DefaultTypeDescriptor