TypeDescriptor.GetProperties メソッド

定義

コンポーネントまたは型のプロパティのコレクションを返します。Returns the collection of properties on a component or type.

オーバーロード

GetProperties(Object, Attribute[], Boolean)

指定された属性配列をフィルターとして使用し、カスタム型記述子を使用して、指定されたコンポーネントのプロパティのコレクションを返します。Returns the collection of properties for a specified component using a specified array of attributes as a filter and using a custom type descriptor.

GetProperties(Object, Boolean)

既定の型記述子を使用して、指定されたコンポーネントのプロパティのコレクションを返します。Returns the collection of properties for a specified component using the default type descriptor.

GetProperties(Type, Attribute[])

指定された属性配列をフィルターとして使用して、指定されたコンポーネント型のプロパティのコレクションを返します。Returns the collection of properties for a specified type of component using a specified array of attributes as a filter.

GetProperties(Type)

指定された型のコンポーネントのプロパティ コレクションを返します。Returns the collection of properties for a specified type of component.

GetProperties(Object)

指定されたコンポーネントのプロパティのコレクションを返します。Returns the collection of properties for a specified component.

GetProperties(Object, Attribute[])

指定された属性配列をフィルターとして使用して、指定されたコンポーネントのプロパティのコレクションを返します。Returns the collection of properties for a specified component using a specified array of attributes as a filter.

GetProperties(Object, Attribute[], Boolean)

指定された属性配列をフィルターとして使用し、カスタム型記述子を使用して、指定されたコンポーネントのプロパティのコレクションを返します。Returns the collection of properties for a specified component using a specified array of attributes as a filter and using a custom type descriptor.

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);
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

プロパティを取得する対象のコンポーネント。A component to get the properties for.

attributes
Attribute[]

フィルターとして使用する型 Attribute の配列。An array of type Attribute to use as a filter.

noCustomTypeDesc
Boolean

カスタム型説明情報を検討する true。それ以外の場合は falsetrue to consider custom type description information; otherwise, false.

戻り値

指定のコンポーネントの指定した属性と一致するイベントを持つ PropertyDescriptorCollectionA PropertyDescriptorCollection with the events that match the specified attributes for the specified component.

例外

component はプロセス間リモート オブジェクトです。component is a cross-process remoted object.

注釈

component のプロパティは、クラスのプロパティとは異なる場合があります。これは、component が配置されている場合に、サイトでプロパティを追加または削除できるためです。The properties for a component can differ from the properties of a class, because the site can add or remove properties if the component is sited.

配列をフィルター処理するには、attributes パラメーター配列を使用します。The attributes parameter array is used to filter the array. フィルター処理は、次の規則によって定義されます。Filtering is defined by the following rules:

  • プロパティに同じクラスの Attribute がない場合、返される配列にはプロパティが含まれません。If a property does not have an Attribute of the same class, the property is not included in the returned array.

  • 属性が Attribute クラスのインスタンスである場合、プロパティは完全に一致している必要があります。そうでない場合は、返された配列には含まれません。If the attribute is an instance of the Attribute class, the property must be an exact match or it is not included in the returned array.

  • Attribute インスタンスが指定されていて、それが既定のプロパティである場合は、プロパティに Attribute のインスタンスがない場合でも、返された配列に含まれます。If an Attribute instance is specified and it is the default property, it is included in the returned array even if there is no instance of the Attribute in the property.

  • attributes に default 属性がある場合、GetProperties メソッドは、プロパティに属性が適用されていない場合と一致します。If attributes has a default attribute, the GetProperties method matches the case when the property does not have the attribute applied.

component パラメーターが null場合は、空のコレクションが返されます。If the component parameter is null, an empty collection is returned.

返されるコレクションの順序は、呼び出し間で同一であるとは限りません。そのため、使用する前に常に順序を指定してください。The order of the returned collection is not guaranteed to be identical between calls, so always order it before use.

こちらもご覧ください

GetProperties(Object, Boolean)

既定の型記述子を使用して、指定されたコンポーネントのプロパティのコレクションを返します。Returns the collection of properties for a specified component using the default type descriptor.

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

プロパティを取得する対象のコンポーネント。A component to get the properties for.

noCustomTypeDesc
Boolean

カスタム型の説明情報を検討しない場合は true。それ以外の場合は falsetrue to not consider custom type description information; otherwise, false.

戻り値

指定されたコンポーネントのプロパティを持つ PropertyDescriptorCollectionA PropertyDescriptorCollection with the properties for a specified component.

例外

component はプロセス間リモート オブジェクトです。component is a cross-process remoted object.

注釈

component パラメーターのプロパティは、クラスのプロパティとは異なる場合があります。これは、component パラメーターが配置されている場合に、サイトでプロパティを追加または削除できるためです。The properties for the component parameter can differ from the properties of a class, because the site can add or remove properties if the component parameter is sited.

componentnull場合は、空のコレクションが返されます。If component is null, an empty collection is returned.

返されるコレクションの順序は、呼び出し間で同一であるとは限りません。そのため、使用する前に常に順序を指定してください。The order of the returned collection is not guaranteed to be identical between calls, so always order it before use.

こちらもご覧ください

GetProperties(Type, Attribute[])

指定された属性配列をフィルターとして使用して、指定されたコンポーネント型のプロパティのコレクションを返します。Returns the collection of properties for a specified type of component using a specified array of attributes as a filter.

public:
 static System::ComponentModel::PropertyDescriptorCollection ^ GetProperties(Type ^ componentType, cli::array <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

対象コンポーネントの TypeThe Type of the target component.

attributes
Attribute[]

フィルターとして使用する型 Attribute の配列。An array of type Attribute to use as a filter.

戻り値

この型のコンポーネントの指定された属性に一致するプロパティを伴う PropertyDescriptorCollectionA PropertyDescriptorCollection with the properties that match the specified attributes for this type of component.

GetProperties メソッドを実装する方法を次のコード例に示します。The following code example demonstrates how to implement the GetProperties method. このコード例は、PropertyTab クラス用に用意されている大規模な例の一部です。This code example is part of a larger example provided for the PropertyTab class.

// 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);
}
' Returns the properties of the specified component extended with 
' a CategoryAttribute reflecting the name of the type of the property.
Public Overloads Overrides Function GetProperties(ByVal component As Object, ByVal attributes() As System.Attribute) As System.ComponentModel.PropertyDescriptorCollection
    Dim props As PropertyDescriptorCollection
    If attributes Is Nothing Then
        props = TypeDescriptor.GetProperties(component)
    Else
        props = TypeDescriptor.GetProperties(component, attributes)
    End If
    Dim propArray(props.Count - 1) As PropertyDescriptor
    Dim i As Integer
    For i = 0 To props.Count - 1
        ' 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))
    Next i
    Return New PropertyDescriptorCollection(propArray)
End Function

Public Overloads Overrides Function GetProperties(ByVal component As Object) As System.ComponentModel.PropertyDescriptorCollection
    Return Me.GetProperties(component, Nothing)
End Function

注釈

オブジェクトのインスタンスがない場合にのみ、このバージョンのこのメソッドを呼び出します。Call this version of this method only when you do not have an instance of the object.

配列をフィルター処理するには、attributes パラメーター配列を使用します。The attributes parameter array is used to filter the array. フィルター処理は、次の規則によって定義されます。Filtering is defined by the following rules:

  • プロパティに同じクラスの Attribute がない場合、返される配列にはプロパティが含まれません。If a property does not have an Attribute of the same class, the property is not included in the returned array.

  • 属性が Attribute クラスのインスタンスである場合、プロパティは完全に一致している必要があります。そうでない場合は、返された配列には含まれません。If the attribute is an instance of the Attribute class, the property must be an exact match or it is not included in the returned array.

  • Attribute インスタンスが指定されていて、それが既定のプロパティである場合は、プロパティに Attribute のインスタンスがない場合でも、返された配列に含まれます。If an Attribute instance is specified and it is the default property, it is included in the returned array even if there is no instance of the Attribute in the property.

  • attributes に default 属性がある場合、GetProperties メソッドは、プロパティに属性が適用されていない場合と一致します。If attributes has a default attribute, the GetProperties method matches the case when the property does not have the attribute applied.

componentType パラメーターが null場合は、空のコレクションが返されます。If the componentType parameter is null, an empty collection is returned.

返されるコレクションの順序は、呼び出し間で同一であるとは限りません。そのため、使用する前に常に順序を指定してください。The order of the returned collection is not guaranteed to be identical between calls, so always order it before use.

こちらもご覧ください

GetProperties(Type)

指定された型のコンポーネントのプロパティ コレクションを返します。Returns the collection of properties for a specified type of component.

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

プロパティを取得する対象のコンポーネントを表す TypeA Type that represents the component to get properties for.

戻り値

指定された型のコンポーネントのプロパティを格納する PropertyDescriptorCollectionA PropertyDescriptorCollection with the properties for a specified type of component.

注釈

オブジェクトのインスタンスがない場合にのみ、このバージョンのこのメソッドを呼び出します。Call this version of this method only when you do not have an instance of the object.

componentType パラメーターが null場合は、空のコレクションが返されます。If the componentType parameter is null, an empty collection is returned.

返されるコレクションの順序は、呼び出し間で同一であるとは限りません。そのため、使用する前に常に順序を指定してください。The order of the returned collection is not guaranteed to be identical between calls, so always order it before use.

こちらもご覧ください

GetProperties(Object)

指定されたコンポーネントのプロパティのコレクションを返します。Returns the collection of properties for a specified component.

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

プロパティを取得する対象のコンポーネント。A component to get the properties for.

戻り値

指定されたコンポーネントのプロパティを持つ PropertyDescriptorCollectionA PropertyDescriptorCollection with the properties for the specified component.

例外

component はプロセス間リモート オブジェクトです。component is a cross-process remoted object.

次のコード例は、GetProperties メソッドを使用して、コントロールのプロパティにアクセスする方法を示しています。The following code example demonstrates the use of the GetProperties method to access the properties of a control. このコード例は、ComponentDesigner クラス用に用意されている大規模な例の一部です。This code example is part of a larger example provided for the ComponentDesigner class.

// 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

注釈

コンポーネントが配置されている場合は、サイトでプロパティを追加または削除できるため、コンポーネントのプロパティはクラスのプロパティとは異なる場合があります。The properties for a component can differ from the properties of a class, because the site can add or remove properties if the component is sited.

component パラメーターが null場合は、空のコレクションが返されます。If the component parameter is null, an empty collection is returned.

返されるコレクションの順序は、呼び出し間で同一であるとは限りません。そのため、使用する前に常に順序を指定してください。The order of the returned collection is not guaranteed to be identical between calls, so always order it before use.

こちらもご覧ください

GetProperties(Object, Attribute[])

指定された属性配列をフィルターとして使用して、指定されたコンポーネントのプロパティのコレクションを返します。Returns the collection of properties for a specified component using a specified array of attributes as a filter.

public:
 static System::ComponentModel::PropertyDescriptorCollection ^ GetProperties(System::Object ^ component, cli::array <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

プロパティを取得する対象のコンポーネント。A component to get the properties for.

attributes
Attribute[]

フィルターとして使用する型 Attribute の配列。An array of type Attribute to use as a filter.

戻り値

指定のコンポーネントの指定した属性と一致するプロパティを持つ PropertyDescriptorCollectionA PropertyDescriptorCollection with the properties that match the specified attributes for the specified component.

例外

component はプロセス間リモート オブジェクトです。component is a cross-process remoted object.

GetProperties メソッドを実装する方法を次のコード例に示します。The following code example demonstrates how to implement the GetProperties method. このコード例は、PropertyTab クラス用に用意されている大規模な例の一部です。This code example is part of a larger example provided for the PropertyTab class.

// 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);
}
' Returns the properties of the specified component extended with 
' a CategoryAttribute reflecting the name of the type of the property.
Public Overloads Overrides Function GetProperties(ByVal component As Object, ByVal attributes() As System.Attribute) As System.ComponentModel.PropertyDescriptorCollection
    Dim props As PropertyDescriptorCollection
    If attributes Is Nothing Then
        props = TypeDescriptor.GetProperties(component)
    Else
        props = TypeDescriptor.GetProperties(component, attributes)
    End If
    Dim propArray(props.Count - 1) As PropertyDescriptor
    Dim i As Integer
    For i = 0 To props.Count - 1
        ' 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))
    Next i
    Return New PropertyDescriptorCollection(propArray)
End Function

Public Overloads Overrides Function GetProperties(ByVal component As Object) As System.ComponentModel.PropertyDescriptorCollection
    Return Me.GetProperties(component, Nothing)
End Function

注釈

component パラメーターのプロパティは、クラスのプロパティとは異なる場合があります。これは、component パラメーターが配置されている場合に、サイトでプロパティを追加または削除できるためです。The properties for the component parameter can differ from the properties of a class, because the site can add or remove properties if the component parameter is sited.

配列をフィルター処理するには、attributes パラメーター配列を使用します。The attributes parameter array is used to filter the array. フィルター処理は、次の規則によって定義されます。Filtering is defined by the following rules:

  • プロパティに同じクラスの Attribute がない場合、返される配列にはプロパティが含まれません。If a property does not have an Attribute of the same class, the property is not included in the returned array.

  • 属性が Attribute クラスのインスタンスである場合、プロパティは完全に一致している必要があります。そうでない場合は、返された配列には含まれません。If the attribute is an instance of the Attribute class, the property must be an exact match or it is not included in the returned array.

  • Attribute インスタンスが指定されていて、それが既定のプロパティである場合は、プロパティに Attribute のインスタンスがない場合でも、返された配列に含まれます。If an Attribute instance is specified and it is the default property, it is included in the returned array even if there is no instance of the Attribute in the property.

  • attributes に default 属性がある場合、GetProperties メソッドは、プロパティに属性が適用されていない場合と一致します。If attributes has a default attribute, the GetProperties method matches the case when the property does not have the attribute applied.

componentnull場合は、空のコレクションが返されます。If component is null, an empty collection is returned.

返されるコレクションの順序は、呼び出し間で同一であるとは限りません。そのため、使用する前に常に順序を指定してください。The order of the returned collection is not guaranteed to be identical between calls, so always order it before use.

こちらもご覧ください

適用対象