TypeDescriptor.GetProperties 方法

定义

返回组件或类型的属性的集合。

重载

GetProperties(Object, Attribute[], Boolean)

通过使用指定的属性数组作为筛选器,并使用自定义类型描述符来返回指定组件的属性集合。

GetProperties(Object, Boolean)

使用默认类型描述符为指定组件返回属性集合。

GetProperties(Type, Attribute[])

通过将指定的属性数组用作筛选器来为指定类型的组件返回属性的集合。

GetProperties(Type)

返回指定组件类型的属性的集合。

GetProperties(Object)

返回指定组件的属性的集合。

GetProperties(Object, Attribute[])

通过将指定的属性数组用作筛选器来返回指定组件的属性的集合。

GetProperties(Object, Attribute[], Boolean)

Source:
TypeDescriptor.cs
Source:
TypeDescriptor.cs
Source:
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)

Source:
TypeDescriptor.cs
Source:
TypeDescriptor.cs
Source:
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 参数已站点,则站点可以添加或删除属性。

如果 componentnull,则返回空集合。

返回的集合的顺序不保证在调用之间相同,因此在使用前始终对其进行排序。

另请参阅

适用于

GetProperties(Type, Attribute[])

Source:
TypeDescriptor.cs
Source:
TypeDescriptor.cs
Source:
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)

Source:
TypeDescriptor.cs
Source:
TypeDescriptor.cs
Source:
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)

Source:
TypeDescriptor.cs
Source:
TypeDescriptor.cs
Source:
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[])

Source:
TypeDescriptor.cs
Source:
TypeDescriptor.cs
Source:
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 该方法与属性未应用特性时的情况匹配。

如果 componentnull,则返回空集合。

返回的集合的顺序不保证在调用之间相同,因此在使用前始终对其进行排序。

另请参阅

适用于