TypeDescriptor.GetProperties TypeDescriptor.GetProperties TypeDescriptor.GetProperties TypeDescriptor.GetProperties Method

定義

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

オーバーロード

GetProperties(Object, Attribute[], Boolean) GetProperties(Object, Attribute[], Boolean) GetProperties(Object, Attribute[], Boolean) 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) GetProperties(Object, Boolean) GetProperties(Object, Boolean) GetProperties(Object, Boolean)

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

GetProperties(Type, Attribute[]) GetProperties(Type, Attribute[]) GetProperties(Type, Attribute[]) 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) GetProperties(Type) GetProperties(Type) GetProperties(Type)

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

GetProperties(Object) GetProperties(Object) GetProperties(Object) GetProperties(Object)

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

GetProperties(Object, Attribute[]) GetProperties(Object, Attribute[]) GetProperties(Object, Attribute[]) 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) GetProperties(Object, Attribute[], Boolean) GetProperties(Object, Attribute[], Boolean) 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 Object Object Object

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

attributes
Attribute[]

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

noCustomTypeDesc
Boolean Boolean Boolean 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プロパティにのインスタンスが存在しない場合でも、返された配列に含まれます。 AttributeIf 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) GetProperties(Object, Boolean) GetProperties(Object, Boolean) 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 Object Object Object

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

noCustomTypeDesc
Boolean Boolean Boolean 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場合があります。これは、パラメーターが配置されている場合に、サイトがプロパティを追加または削除できるためです。 componentThe 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[]) GetProperties(Type, Attribute[]) GetProperties(Type, Attribute[]) 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 Type Type 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プロパティにのインスタンスが存在しない場合でも、返された配列に含まれます。 AttributeIf 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) GetProperties(Type) GetProperties(Type) 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 Type Type 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) GetProperties(Object) GetProperties(Object) 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 Object Object 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[]) GetProperties(Object, Attribute[]) GetProperties(Object, Attribute[]) 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 Object Object 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場合があります。これは、パラメーターが配置されている場合に、サイトがプロパティを追加または削除できるためです。 componentThe 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プロパティにのインスタンスが存在しない場合でも、返された配列に含まれます。 AttributeIf 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.

こちらもご覧ください

適用対象