Поделиться через


TypeDescriptor.GetProperties Метод

Определение

Возвращает коллекцию свойств для компонента или типа.

Перегрузки

GetProperties(Object, Attribute[], Boolean)

Возвращает коллекцию свойств для указанного компонента, используя заданный массив атрибутов в качестве фильтра и пользовательский дескриптор типа.

GetProperties(Object, Boolean)

Возвращает коллекцию свойств для указанного компонента, используя дескриптор типа по умолчанию.

GetProperties(Type, Attribute[])

Возвращает коллекцию свойств для указанного типа компонента, используя заданный массив атрибутов в качестве фильтра.

GetProperties(Type)

Возвращает коллекцию свойств для указанного типа компонента.

GetProperties(Object)

Возвращает коллекцию свойств для указанного компонента.

GetProperties(Object, Attribute[])

Возвращает коллекцию свойств для указанного компонента, используя заданный массив атрибутов в качестве фильтра.

GetProperties(Object, Attribute[], Boolean)

Исходный код:
TypeDescriptor.cs
Исходный код:
TypeDescriptor.cs
Исходный код:
TypeDescriptor.cs

Возвращает коллекцию свойств для указанного компонента, используя заданный массив атрибутов в качестве фильтра и пользовательский дескриптор типа.

public:
 static System::ComponentModel::PropertyDescriptorCollection ^ GetProperties(System::Object ^ component, cli::array <Attribute ^> ^ attributes, bool noCustomTypeDesc);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties (object component, Attribute[] attributes, bool noCustomTypeDesc);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties (object component, Attribute[]? attributes, bool noCustomTypeDesc);
static member GetProperties : obj * Attribute[] * bool -> System.ComponentModel.PropertyDescriptorCollection
Public Shared Function GetProperties (component As Object, attributes As Attribute(), noCustomTypeDesc As Boolean) As PropertyDescriptorCollection

Параметры

component
Object

Компонент, для которого требуется получить свойства.

attributes
Attribute[]

Массив типа Attribute, используемый как фильтр.

noCustomTypeDesc
Boolean

Значение true, чтобы настраиваемые сведения описания типа не учитывались; в противном случае — значение false.

Возвращаемое значение

Коллекция PropertyDescriptorCollection с событиями, совпадающими с указанными атрибутами для заданного компонента.

Исключения

Параметр component является межпроцессным удаленным объектом.

Комментарии

Свойства для component могут отличаться от свойств класса , так как сайт может добавлять или удалять свойства, component если сайт является сайтом.

Массив attributes параметров используется для фильтрации массива. Фильтрация определяется следующими правилами:

  • Если свойство не имеет Attribute одного класса, свойство не включается в возвращаемый массив.

  • Если атрибут является экземпляром Attribute класса , свойство должно быть точным совпадением или оно не включено в возвращаемый массив.

  • Attribute Если указан экземпляр и является свойством по умолчанию, он включается в возвращаемый массив, даже если в свойстве Attribute нет экземпляра .

  • Если attributes имеет атрибут по умолчанию, метод соответствует ситуации, GetProperties когда к свойству не применен атрибут .

component Если параметр имеет значение null, возвращается пустая коллекция.

Порядок возвращаемой коллекции не гарантируется одинаковым между вызовами, поэтому всегда упорядочивать ее перед использованием.

См. также раздел

Применяется к

GetProperties(Object, Boolean)

Исходный код:
TypeDescriptor.cs
Исходный код:
TypeDescriptor.cs
Исходный код:
TypeDescriptor.cs

Возвращает коллекцию свойств для указанного компонента, используя дескриптор типа по умолчанию.

public:
 static System::ComponentModel::PropertyDescriptorCollection ^ GetProperties(System::Object ^ component, bool noCustomTypeDesc);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties (object component, bool noCustomTypeDesc);
static member GetProperties : obj * bool -> System.ComponentModel.PropertyDescriptorCollection
Public Shared Function GetProperties (component As Object, noCustomTypeDesc As Boolean) As PropertyDescriptorCollection

Параметры

component
Object

Компонент, для которого требуется получить свойства.

noCustomTypeDesc
Boolean

Значение true, чтобы настраиваемые сведения описания типа не учитывались; в противном случае — значение false.

Возвращаемое значение

Коллекция PropertyDescriptorCollection со свойствами заданного компонента.

Исключения

Параметр component является межпроцессным удаленным объектом.

Комментарии

Свойства параметра component могут отличаться от свойств класса, так как сайт может добавлять или удалять свойства, component если параметр находится на сайте.

Если component имеет значение null, возвращается пустая коллекция.

Порядок возвращаемой коллекции не гарантируется одинаковым между вызовами, поэтому всегда упорядочивать ее перед использованием.

См. также раздел

Применяется к

GetProperties(Type, Attribute[])

Исходный код:
TypeDescriptor.cs
Исходный код:
TypeDescriptor.cs
Исходный код:
TypeDescriptor.cs

Возвращает коллекцию свойств для указанного типа компонента, используя заданный массив атрибутов в качестве фильтра.

public:
 static System::ComponentModel::PropertyDescriptorCollection ^ GetProperties(Type ^ componentType, cli::array <Attribute ^> ^ attributes);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties (Type componentType, Attribute[] attributes);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties (Type componentType, Attribute[]? attributes);
static member GetProperties : Type * Attribute[] -> System.ComponentModel.PropertyDescriptorCollection
Public Shared Function GetProperties (componentType As Type, attributes As Attribute()) As PropertyDescriptorCollection

Параметры

componentType
Type

Тип Type целевого компонента.

attributes
Attribute[]

Массив типа Attribute, используемый как фильтр.

Возвращаемое значение

Коллекция PropertyDescriptorCollection со свойствами, соответствующими заданным атрибутам для данного типа компонента.

Примеры

В следующем примере кода показано, как реализовать GetProperties метод . Этот пример входит в состав более крупного примера использования класса PropertyTab.

// Returns the properties of the specified component extended with
// a CategoryAttribute reflecting the name of the type of the property.
[ReflectionPermission(SecurityAction::Demand, Flags=ReflectionPermissionFlag::MemberAccess)]
virtual System::ComponentModel::PropertyDescriptorCollection^ GetProperties( Object^ component, array<System::Attribute^>^attributes ) override
{
   PropertyDescriptorCollection^ props;
   if ( attributes == nullptr )
            props = TypeDescriptor::GetProperties( component );
   else
            props = TypeDescriptor::GetProperties( component, attributes );

   array<PropertyDescriptor^>^propArray = gcnew array<PropertyDescriptor^>(props->Count);
   for ( int i = 0; i < props->Count; i++ )
   {
      // Create a new PropertyDescriptor from the old one, with
      // a CategoryAttribute matching the name of the type.
      array<Attribute^>^temp0 = {gcnew CategoryAttribute( props[ i ]->PropertyType->Name )};
      propArray[ i ] = TypeDescriptor::CreateProperty( props[ i ]->ComponentType, props[ i ], temp0 );

   }
   return gcnew PropertyDescriptorCollection( propArray );
}

virtual System::ComponentModel::PropertyDescriptorCollection^ GetProperties( Object^ component ) override
{
   return this->GetProperties( component, nullptr );
}
// Returns the properties of the specified component extended with 
// a CategoryAttribute reflecting the name of the type of the property.
public override System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, System.Attribute[] attributes)
{
    PropertyDescriptorCollection props;
    if( attributes == null )
        props = TypeDescriptor.GetProperties(component);    
    else
        props = TypeDescriptor.GetProperties(component, attributes);    
    
    PropertyDescriptor[] propArray = new PropertyDescriptor[props.Count];            
    for(int i=0; i<props.Count; i++)           
    {                
        // Create a new PropertyDescriptor from the old one, with 
        // a CategoryAttribute matching the name of the type.
        propArray[i] = TypeDescriptor.CreateProperty(props[i].ComponentType, props[i], new CategoryAttribute(props[i].PropertyType.Name));
    }
    return new PropertyDescriptorCollection( propArray );
}

public override System.ComponentModel.PropertyDescriptorCollection GetProperties(object component)
{                     
    return this.GetProperties(component, null);
}

Комментарии

Вызывайте эту версию этого метода, только если у вас нет экземпляра объекта .

Массив attributes параметров используется для фильтрации массива. Фильтрация определяется следующими правилами:

  • Если свойство не имеет Attribute одного класса, свойство не включается в возвращаемый массив.

  • Если атрибут является экземпляром Attribute класса , свойство должно быть точным совпадением или оно не включено в возвращаемый массив.

  • Attribute Если указан экземпляр и является свойством по умолчанию, он включается в возвращаемый массив, даже если в свойстве Attribute нет экземпляра .

  • Если attributes имеет атрибут по умолчанию, метод соответствует ситуации, GetProperties когда к свойству не применен атрибут .

componentType Если параметр имеет значение null, возвращается пустая коллекция.

Порядок возвращаемой коллекции не гарантируется одинаковым между вызовами, поэтому всегда упорядочивать ее перед использованием.

См. также раздел

Применяется к

GetProperties(Type)

Исходный код:
TypeDescriptor.cs
Исходный код:
TypeDescriptor.cs
Исходный код:
TypeDescriptor.cs

Возвращает коллекцию свойств для указанного типа компонента.

public:
 static System::ComponentModel::PropertyDescriptorCollection ^ GetProperties(Type ^ componentType);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties (Type componentType);
static member GetProperties : Type -> System.ComponentModel.PropertyDescriptorCollection
Public Shared Function GetProperties (componentType As Type) As PropertyDescriptorCollection

Параметры

componentType
Type

Тип Type, представляющий компонент, свойства для которого нужно получить.

Возвращаемое значение

Коллекция PropertyDescriptorCollection, содержащая свойства для заданного типа компонента.

Комментарии

Вызывайте эту версию этого метода, только если у вас нет экземпляра объекта .

componentType Если параметр имеет значение null, возвращается пустая коллекция.

Порядок возвращаемой коллекции не гарантируется одинаковым между вызовами, поэтому всегда упорядочивать ее перед использованием.

См. также раздел

Применяется к

GetProperties(Object)

Исходный код:
TypeDescriptor.cs
Исходный код:
TypeDescriptor.cs
Исходный код:
TypeDescriptor.cs

Возвращает коллекцию свойств для указанного компонента.

public:
 static System::ComponentModel::PropertyDescriptorCollection ^ GetProperties(System::Object ^ component);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties (object component);
static member GetProperties : obj -> System.ComponentModel.PropertyDescriptorCollection
Public Shared Function GetProperties (component As Object) As PropertyDescriptorCollection

Параметры

component
Object

Компонент, для которого требуется получить свойства.

Возвращаемое значение

Коллекция PropertyDescriptorCollection со свойствами данного компонента.

Исключения

Параметр component является межпроцессным удаленным объектом.

Примеры

В следующем примере кода демонстрируется использование метода для GetProperties доступа к свойствам элемента управления . Этот пример входит в состав более крупного примера использования класса ComponentDesigner.

// This is the shadowed property on the designer.
// This value will be serialized instead of the 
// value of the control's property.
public Color BackColor
{
    get
    {
        return (Color)ShadowProperties["BackColor"];
    }
    set
    {
        if (this.changeService != null)
        {
            PropertyDescriptor backColorDesc =
                TypeDescriptor.GetProperties(this.Control)["BackColor"];

            this.changeService.OnComponentChanging(
                this.Control,
                backColorDesc);

            this.ShadowProperties["BackColor"] = value;

            this.changeService.OnComponentChanged(
                this.Control,
                backColorDesc,
                null,
                null);
        }
    }
}
' This is the shadowed property on the designer.
' This value will be serialized instead of the 
' value of the control's property.

Public Property BackColor() As Color
    Get
        Return CType(ShadowProperties("BackColor"), Color)
    End Get
    Set(ByVal value As Color)
        If (Me.changeService IsNot Nothing) Then
            Dim backColorDesc As PropertyDescriptor = TypeDescriptor.GetProperties(Me.Control)("BackColor")

            Me.changeService.OnComponentChanging(Me.Control, backColorDesc)

            Me.ShadowProperties("BackColor") = value

            Me.changeService.OnComponentChanged(Me.Control, backColorDesc, Nothing, Nothing)
        End If
    End Set
End Property

Комментарии

Свойства компонента могут отличаться от свойств класса, так как сайт может добавлять или удалять свойства, если компонент находится на сайте.

component Если параметр имеет значение null, возвращается пустая коллекция.

Порядок возвращаемой коллекции не гарантируется одинаковым между вызовами, поэтому всегда упорядочивать ее перед использованием.

См. также раздел

Применяется к

GetProperties(Object, Attribute[])

Исходный код:
TypeDescriptor.cs
Исходный код:
TypeDescriptor.cs
Исходный код:
TypeDescriptor.cs

Возвращает коллекцию свойств для указанного компонента, используя заданный массив атрибутов в качестве фильтра.

public:
 static System::ComponentModel::PropertyDescriptorCollection ^ GetProperties(System::Object ^ component, cli::array <Attribute ^> ^ attributes);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties (object component, Attribute[] attributes);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties (object component, Attribute[]? attributes);
static member GetProperties : obj * Attribute[] -> System.ComponentModel.PropertyDescriptorCollection
Public Shared Function GetProperties (component As Object, attributes As Attribute()) As PropertyDescriptorCollection

Параметры

component
Object

Компонент, для которого требуется получить свойства.

attributes
Attribute[]

Массив типа Attribute, используемый как фильтр.

Возвращаемое значение

Коллекция PropertyDescriptorCollection со свойствами, соответствующими заданным атрибутам для заданного компонента.

Исключения

Параметр component является межпроцессным удаленным объектом.

Примеры

В следующем примере кода показано, как реализовать GetProperties метод . Этот пример входит в состав более крупного примера использования класса PropertyTab.

// Returns the properties of the specified component extended with
// a CategoryAttribute reflecting the name of the type of the property.
[ReflectionPermission(SecurityAction::Demand, Flags=ReflectionPermissionFlag::MemberAccess)]
virtual System::ComponentModel::PropertyDescriptorCollection^ GetProperties( Object^ component, array<System::Attribute^>^attributes ) override
{
   PropertyDescriptorCollection^ props;
   if ( attributes == nullptr )
            props = TypeDescriptor::GetProperties( component );
   else
            props = TypeDescriptor::GetProperties( component, attributes );

   array<PropertyDescriptor^>^propArray = gcnew array<PropertyDescriptor^>(props->Count);
   for ( int i = 0; i < props->Count; i++ )
   {
      // Create a new PropertyDescriptor from the old one, with
      // a CategoryAttribute matching the name of the type.
      array<Attribute^>^temp0 = {gcnew CategoryAttribute( props[ i ]->PropertyType->Name )};
      propArray[ i ] = TypeDescriptor::CreateProperty( props[ i ]->ComponentType, props[ i ], temp0 );

   }
   return gcnew PropertyDescriptorCollection( propArray );
}

virtual System::ComponentModel::PropertyDescriptorCollection^ GetProperties( Object^ component ) override
{
   return this->GetProperties( component, nullptr );
}
// Returns the properties of the specified component extended with 
// a CategoryAttribute reflecting the name of the type of the property.
public override System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, System.Attribute[] attributes)
{
    PropertyDescriptorCollection props;
    if( attributes == null )
        props = TypeDescriptor.GetProperties(component);    
    else
        props = TypeDescriptor.GetProperties(component, attributes);    
    
    PropertyDescriptor[] propArray = new PropertyDescriptor[props.Count];            
    for(int i=0; i<props.Count; i++)           
    {                
        // Create a new PropertyDescriptor from the old one, with 
        // a CategoryAttribute matching the name of the type.
        propArray[i] = TypeDescriptor.CreateProperty(props[i].ComponentType, props[i], new CategoryAttribute(props[i].PropertyType.Name));
    }
    return new PropertyDescriptorCollection( propArray );
}

public override System.ComponentModel.PropertyDescriptorCollection GetProperties(object component)
{                     
    return this.GetProperties(component, null);
}

Комментарии

Свойства параметра component могут отличаться от свойств класса, так как сайт может добавлять или удалять свойства, component если параметр находится на сайте.

Массив attributes параметров используется для фильтрации массива. Фильтрация определяется следующими правилами:

  • Если свойство не имеет Attribute одного класса, свойство не включается в возвращаемый массив.

  • Если атрибут является экземпляром Attribute класса , свойство должно быть точным совпадением или оно не включено в возвращаемый массив.

  • Attribute Если указан экземпляр и является свойством по умолчанию, он включается в возвращаемый массив, даже если в свойстве Attribute нет экземпляра .

  • Если attributes имеет атрибут по умолчанию, метод соответствует ситуации, GetProperties когда к свойству не применен атрибут .

Если component имеет значение null, возвращается пустая коллекция.

Порядок возвращаемой коллекции не гарантируется одинаковым между вызовами, поэтому всегда упорядочивать ее перед использованием.

См. также раздел

Применяется к