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

ICustomTypeDescriptor() private method

ICustomTypeDescriptor implementation.
private ICustomTypeDescriptor ( Attribute attributes ) : PropertyDescriptorCollection
attributes System.Attribute
return PropertyDescriptorCollection
                PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties(Attribute[] attributes)
                {
                    // 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;

                    if (rp != null)
                    {
                        // There is no need to filter these properties.  For extended objects, they
                        // are accessed through our pipeline code, which always filters before
                        // returning.  So any filter we do here is redundant.  Note that we do
                        // pass a valid filter to a custom descriptor so it can optimize if it wants.
                        PropertyDescriptorCollection props = rp.GetExtendedProperties(_instance);
                        return props;
                    }

                    ICustomTypeDescriptor desc = p.GetExtendedTypeDescriptor(_instance);
                    if (desc == null) throw new InvalidOperationException(SR.Format(SR.TypeDescriptorProviderError, _node.Provider.GetType().FullName, "GetExtendedTypeDescriptor"));
                    PropertyDescriptorCollection properties = desc.GetProperties(attributes);
                    if (properties == null) throw new InvalidOperationException(SR.Format(SR.TypeDescriptorProviderError, _node.Provider.GetType().FullName, "GetProperties"));
                    return properties;
                }

Same methods

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