Udostępnij za pośrednictwem


TypeDescriptor.GetProperties Metoda

Definicja

Zwraca kolekcję właściwości w składniku lub typie.

Przeciążenia

Nazwa Opis
GetProperties(Object)

Zwraca kolekcję właściwości dla określonego składnika.

GetProperties(Type)

Zwraca kolekcję właściwości dla określonego typu składnika.

GetProperties(Object, Attribute[])

Zwraca kolekcję właściwości dla określonego składnika przy użyciu określonej tablicy atrybutów jako filtru.

GetProperties(Object, Boolean)

Zwraca kolekcję właściwości dla określonego składnika przy użyciu deskryptora domyślnego typu.

GetProperties(Type, Attribute[])

Zwraca kolekcję właściwości określonego typu składnika przy użyciu określonej tablicy atrybutów jako filtru.

GetProperties(Object, Attribute[], Boolean)

Zwraca kolekcję właściwości dla określonego składnika przy użyciu określonej tablicy atrybutów jako filtru i przy użyciu deskryptora niestandardowego typu.

GetProperties(Object)

Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs

Zwraca kolekcję właściwości dla określonego składnika.

public:
 static System::ComponentModel::PropertyDescriptorCollection ^ GetProperties(System::Object ^ component);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("PropertyDescriptor's PropertyType cannot be statically discovered. The Type of component cannot be statically discovered.")]
public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("PropertyDescriptor's PropertyType cannot be statically discovered. The Type of component cannot be statically discovered.")>]
static member GetProperties : obj -> System.ComponentModel.PropertyDescriptorCollection
static member GetProperties : obj -> System.ComponentModel.PropertyDescriptorCollection
Public Shared Function GetProperties (component As Object) As PropertyDescriptorCollection

Parametry

component
Object

Składnik, dla którego mają być uzyskiwane właściwości.

Zwraca

Element PropertyDescriptorCollection z właściwościami określonego składnika.

Atrybuty

Wyjątki

component jest obiektem zdalnym procesu krzyżowego.

Przykłady

W poniższym przykładzie kodu pokazano użycie GetProperties metody w celu uzyskania dostępu do właściwości kontrolki. Ten przykład kodu jest częścią większego przykładu udostępnionego dla klasy 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 => (Color)ShadowProperties[nameof(BackColor)];
    set
    {
        if (changeService != null)
        {
            PropertyDescriptor backColorDesc =
                TypeDescriptor.GetProperties(Control)["BackColor"];

            changeService.OnComponentChanging(
                Control,
                backColorDesc);

            ShadowProperties[nameof(BackColor)] = value;

            changeService.OnComponentChanged(
                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

Uwagi

Właściwości składnika mogą różnić się od właściwości klasy, ponieważ witryna może dodawać lub usuwać właściwości, jeśli składnik jest lokacji.

component Jeśli parametr ma nullwartość , zwracana jest pusta kolekcja.

Kolejność zwróconej kolekcji nie ma gwarancji, że jest taka sama między wywołaniami, więc zawsze porządkuj ją przed użyciem.

Zobacz też

Dotyczy

GetProperties(Type)

Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs

Zwraca kolekcję właściwości dla określonego typu składnika.

public:
 static System::ComponentModel::PropertyDescriptorCollection ^ GetProperties(Type ^ componentType);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("PropertyDescriptor's PropertyType cannot be statically discovered.")]
public static System.ComponentModel.PropertyDescriptorCollection GetProperties(Type componentType);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties(Type componentType);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("PropertyDescriptor's PropertyType cannot be statically discovered.")>]
static member GetProperties : Type -> System.ComponentModel.PropertyDescriptorCollection
static member GetProperties : Type -> System.ComponentModel.PropertyDescriptorCollection
Public Shared Function GetProperties (componentType As Type) As PropertyDescriptorCollection

Parametry

componentType
Type

Element Type reprezentujący składnik, dla którego mają być uzyskiwane właściwości.

Zwraca

Element PropertyDescriptorCollection z właściwościami określonego typu składnika.

Atrybuty

Uwagi

Wywołaj tę wersję tej metody tylko wtedy, gdy nie masz wystąpienia obiektu.

componentType Jeśli parametr ma nullwartość , zwracana jest pusta kolekcja.

Kolejność zwróconej kolekcji nie ma gwarancji, że jest taka sama między wywołaniami, więc zawsze porządkuj ją przed użyciem.

Zobacz też

Dotyczy

GetProperties(Object, Attribute[])

Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs

Zwraca kolekcję właściwości dla określonego składnika przy użyciu określonej tablicy atrybutów jako filtru.

public:
 static System::ComponentModel::PropertyDescriptorCollection ^ GetProperties(System::Object ^ component, cli::array <Attribute ^> ^ attributes);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("PropertyDescriptor's PropertyType cannot be statically discovered. The Type of component cannot be statically discovered. The public parameterless constructor or the 'Default' static field may be trimmed from the Attribute's Type.")]
public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, Attribute[]? attributes);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, Attribute[] attributes);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("PropertyDescriptor's PropertyType cannot be statically discovered. The Type of component cannot be statically discovered. The public parameterless constructor or the 'Default' static field may be trimmed from the Attribute's Type.")>]
static member GetProperties : obj * Attribute[] -> System.ComponentModel.PropertyDescriptorCollection
static member GetProperties : obj * Attribute[] -> System.ComponentModel.PropertyDescriptorCollection
Public Shared Function GetProperties (component As Object, attributes As Attribute()) As PropertyDescriptorCollection

Parametry

component
Object

Składnik, dla którego mają być uzyskiwane właściwości.

attributes
Attribute[]

Tablica typu Attribute , która ma być używana jako filtr.

Zwraca

Element PropertyDescriptorCollection z właściwościami zgodnymi z określonymi atrybutami określonego składnika.

Atrybuty

Wyjątki

component jest obiektem zdalnym procesu krzyżowego.

Przykłady

W poniższym przykładzie kodu pokazano, jak zaimplementować metodę GetProperties . Ten przykład kodu jest częścią większego przykładu udostępnionego dla klasy 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 PropertyDescriptorCollection GetProperties(object component, System.Attribute[] attributes)
{
    PropertyDescriptorCollection props = attributes == null ? TypeDescriptor.GetProperties(component) : 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 PropertyDescriptorCollection GetProperties(object component) => GetProperties(component, null);

Uwagi

Właściwości parametru component mogą różnić się od właściwości klasy, ponieważ witryna może dodawać lub usuwać właściwości, jeśli component parametr jest lokacji.

Tablica attributes parametrów służy do filtrowania tablicy. Filtrowanie jest definiowane przez następujące reguły:

  • Jeśli właściwość nie ma Attribute tej samej klasy, właściwość nie jest uwzględniona w zwracanej tablicy.

  • Jeśli atrybut jest wystąpieniem Attribute klasy, właściwość musi być dokładnie zgodna lub nie jest uwzględniona w zwracanej tablicy.

  • Attribute Jeśli wystąpienie jest określone i jest to właściwość domyślna, jest uwzględniana w zwracanej tablicy, nawet jeśli w właściwości nie ma żadnego wystąpieniaAttribute.

  • Jeśli attributes ma atrybut domyślny, metoda pasuje do wielkości liter, GetProperties gdy właściwość nie ma zastosowanego atrybutu.

Jeśli component wartość to null, zwracana jest pusta kolekcja.

Kolejność zwróconej kolekcji nie ma gwarancji, że jest taka sama między wywołaniami, więc zawsze porządkuj ją przed użyciem.

Zobacz też

Dotyczy

GetProperties(Object, Boolean)

Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs

Zwraca kolekcję właściwości dla określonego składnika przy użyciu deskryptora domyślnego typu.

public:
 static System::ComponentModel::PropertyDescriptorCollection ^ GetProperties(System::Object ^ component, bool noCustomTypeDesc);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("PropertyDescriptor's PropertyType cannot be statically discovered. The Type of component cannot be statically discovered.")]
public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, bool noCustomTypeDesc);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, bool noCustomTypeDesc);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("PropertyDescriptor's PropertyType cannot be statically discovered. The Type of component cannot be statically discovered.")>]
static member GetProperties : obj * bool -> System.ComponentModel.PropertyDescriptorCollection
static member GetProperties : obj * bool -> System.ComponentModel.PropertyDescriptorCollection
Public Shared Function GetProperties (component As Object, noCustomTypeDesc As Boolean) As PropertyDescriptorCollection

Parametry

component
Object

Składnik, dla którego mają być uzyskiwane właściwości.

noCustomTypeDesc
Boolean

true aby nie brać pod uwagę informacji o opisie typu niestandardowego; w przeciwnym razie, false.

Zwraca

Element PropertyDescriptorCollection z właściwościami określonego składnika.

Atrybuty

Wyjątki

component jest obiektem zdalnym procesu krzyżowego.

Uwagi

Właściwości parametru component mogą różnić się od właściwości klasy, ponieważ witryna może dodawać lub usuwać właściwości, jeśli component parametr jest lokacji.

Jeśli component wartość to null, zwracana jest pusta kolekcja.

Kolejność zwróconej kolekcji nie ma gwarancji, że jest taka sama między wywołaniami, więc zawsze porządkuj ją przed użyciem.

Zobacz też

Dotyczy

GetProperties(Type, Attribute[])

Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs

Zwraca kolekcję właściwości określonego typu składnika przy użyciu określonej tablicy atrybutów jako filtru.

public:
 static System::ComponentModel::PropertyDescriptorCollection ^ GetProperties(Type ^ componentType, cli::array <Attribute ^> ^ attributes);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("PropertyDescriptor's PropertyType cannot be statically discovered. The public parameterless constructor or the 'Default' static field may be trimmed from the Attribute's Type.")]
public static System.ComponentModel.PropertyDescriptorCollection GetProperties(Type componentType, Attribute[]? attributes);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties(Type componentType, Attribute[] attributes);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("PropertyDescriptor's PropertyType cannot be statically discovered. The public parameterless constructor or the 'Default' static field may be trimmed from the Attribute's Type.")>]
static member GetProperties : Type * Attribute[] -> System.ComponentModel.PropertyDescriptorCollection
static member GetProperties : Type * Attribute[] -> System.ComponentModel.PropertyDescriptorCollection
Public Shared Function GetProperties (componentType As Type, attributes As Attribute()) As PropertyDescriptorCollection

Parametry

componentType
Type

Składnik Type docelowy.

attributes
Attribute[]

Tablica typu Attribute , która ma być używana jako filtr.

Zwraca

Element PropertyDescriptorCollection z właściwościami zgodnymi z określonymi atrybutami dla tego typu składnika.

Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak zaimplementować metodę GetProperties . Ten przykład kodu jest częścią większego przykładu udostępnionego dla klasy 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 PropertyDescriptorCollection GetProperties(object component, System.Attribute[] attributes)
{
    PropertyDescriptorCollection props = attributes == null ? TypeDescriptor.GetProperties(component) : 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 PropertyDescriptorCollection GetProperties(object component) => GetProperties(component, null);

Uwagi

Wywołaj tę wersję tej metody tylko wtedy, gdy nie masz wystąpienia obiektu.

Tablica attributes parametrów służy do filtrowania tablicy. Filtrowanie jest definiowane przez następujące reguły:

  • Jeśli właściwość nie ma Attribute tej samej klasy, właściwość nie jest uwzględniona w zwracanej tablicy.

  • Jeśli atrybut jest wystąpieniem Attribute klasy, właściwość musi być dokładnie zgodna lub nie jest uwzględniona w zwracanej tablicy.

  • Attribute Jeśli wystąpienie jest określone i jest to właściwość domyślna, jest uwzględniana w zwracanej tablicy, nawet jeśli w właściwości nie ma żadnego wystąpieniaAttribute.

  • Jeśli attributes ma atrybut domyślny, metoda pasuje do wielkości liter, GetProperties gdy właściwość nie ma zastosowanego atrybutu.

componentType Jeśli parametr ma nullwartość , zwracana jest pusta kolekcja.

Kolejność zwróconej kolekcji nie ma gwarancji, że jest taka sama między wywołaniami, więc zawsze porządkuj ją przed użyciem.

Zobacz też

Dotyczy

GetProperties(Object, Attribute[], Boolean)

Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs

Zwraca kolekcję właściwości dla określonego składnika przy użyciu określonej tablicy atrybutów jako filtru i przy użyciu deskryptora niestandardowego typu.

public:
 static System::ComponentModel::PropertyDescriptorCollection ^ GetProperties(System::Object ^ component, cli::array <Attribute ^> ^ attributes, bool noCustomTypeDesc);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("PropertyDescriptor's PropertyType cannot be statically discovered. The Type of component cannot be statically discovered. The public parameterless constructor or the 'Default' static field may be trimmed from the Attribute's Type.")]
public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, Attribute[]? attributes, bool noCustomTypeDesc);
public static System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, Attribute[] attributes, bool noCustomTypeDesc);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("PropertyDescriptor's PropertyType cannot be statically discovered. The Type of component cannot be statically discovered. The public parameterless constructor or the 'Default' static field may be trimmed from the Attribute's Type.")>]
static member GetProperties : obj * Attribute[] * bool -> System.ComponentModel.PropertyDescriptorCollection
static member GetProperties : obj * Attribute[] * bool -> System.ComponentModel.PropertyDescriptorCollection
Public Shared Function GetProperties (component As Object, attributes As Attribute(), noCustomTypeDesc As Boolean) As PropertyDescriptorCollection

Parametry

component
Object

Składnik, dla którego mają być uzyskiwane właściwości.

attributes
Attribute[]

Tablica typu Attribute , która ma być używana jako filtr.

noCustomTypeDesc
Boolean

true aby nie brać pod uwagę informacji o opisie typu niestandardowego; w przeciwnym razie, false.

Zwraca

Element PropertyDescriptorCollection ze zdarzeniami zgodnymi z określonymi atrybutami określonego składnika.

Atrybuty

Wyjątki

component jest obiektem zdalnym procesu krzyżowego.

Uwagi

Właściwości klasy component mogą się różnić od właściwości klasy, ponieważ witryna może dodawać lub usuwać właściwości, jeśli component obiekt jest lokacją.

Tablica attributes parametrów służy do filtrowania tablicy. Filtrowanie jest definiowane przez następujące reguły:

  • Jeśli właściwość nie ma Attribute tej samej klasy, właściwość nie jest uwzględniona w zwracanej tablicy.

  • Jeśli atrybut jest wystąpieniem Attribute klasy, właściwość musi być dokładnie zgodna lub nie jest uwzględniona w zwracanej tablicy.

  • Attribute Jeśli wystąpienie jest określone i jest to właściwość domyślna, jest uwzględniana w zwracanej tablicy, nawet jeśli w właściwości nie ma żadnego wystąpieniaAttribute.

  • Jeśli attributes ma atrybut domyślny, metoda pasuje do wielkości liter, GetProperties gdy właściwość nie ma zastosowanego atrybutu.

component Jeśli parametr ma nullwartość , zwracana jest pusta kolekcja.

Kolejność zwróconej kolekcji nie ma gwarancji, że jest taka sama między wywołaniami, więc zawsze porządkuj ją przed użyciem.

Zobacz też

Dotyczy