Číst v angličtině

Sdílet prostřednictvím


PropertyInfo Třída

Definice

Zjistí atributy vlastnosti a poskytuje přístup k metadatům vlastnosti.

C#
public abstract class PropertyInfo : System.Reflection.MemberInfo
C#
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
public abstract class PropertyInfo : System.Reflection.MemberInfo, System.Runtime.InteropServices._PropertyInfo
C#
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class PropertyInfo : System.Reflection.MemberInfo, System.Runtime.InteropServices._PropertyInfo
Dědičnost
PropertyInfo
Odvozené
Atributy
Implementuje

Příklady

Tento příklad ukazuje, jak používat různé třídy reflexe k analýze metadat obsažených v sestavení.

Poznámka

Tento příklad generuje přibližně 55 000 řádků dat, které můžete na příkazovém řádku přesměrovat do textového souboru: example.exe > propertyinfo.txt

C#
using System;
using System.Reflection;

class Module1
{
    public static void Main()
    {
        // This variable holds the amount of indenting that
        // should be used when displaying each line of information.
        Int32 indent = 0;
        // Display information about the EXE assembly.
        Assembly a = typeof(Module1).Assembly;
        Display(indent, "Assembly identity={0}", a.FullName);
        Display(indent+1, "Codebase={0}", a.CodeBase);

        // Display the set of assemblies our assemblies reference.

        Display(indent, "Referenced assemblies:");
        foreach (AssemblyName an in a.GetReferencedAssemblies() )
        {
             Display(indent + 1, "Name={0}, Version={1}, Culture={2}, PublicKey token={3}", an.Name, an.Version, an.CultureInfo.Name, (BitConverter.ToString (an.GetPublicKeyToken())));
        }
        Display(indent, "");

        // Display information about each assembly loading into this AppDomain.
        foreach (Assembly b in AppDomain.CurrentDomain.GetAssemblies())
        {
            Display(indent, "Assembly: {0}", b);

            // Display information about each module of this assembly.
            foreach ( Module m in b.GetModules(true) )
            {
                Display(indent+1, "Module: {0}", m.Name);
            }

            // Display information about each type exported from this assembly.

            indent += 1;
            foreach ( Type t in b.GetExportedTypes() )
            {
                Display(0, "");
                Display(indent, "Type: {0}", t);

                // For each type, show its members & their custom attributes.

                indent += 1;
                foreach (MemberInfo mi in t.GetMembers() )
                {
                    Display(indent, "Member: {0}", mi.Name);
                    DisplayAttributes(indent, mi);

                    // If the member is a method, display information about its parameters.

                    if (mi.MemberType==MemberTypes.Method)
                    {
                        foreach ( ParameterInfo pi in ((MethodInfo) mi).GetParameters() )
                        {
                            Display(indent+1, "Parameter: Type={0}, Name={1}", pi.ParameterType, pi.Name);
                        }
                    }

                    // If the member is a property, display information about the property's accessor methods.
                    if (mi.MemberType==MemberTypes.Property)
                    {
                        foreach ( MethodInfo am in ((PropertyInfo) mi).GetAccessors() )
                        {
                            Display(indent+1, "Accessor method: {0}", am);
                        }
                    }
                }
                indent -= 1;
            }
            indent -= 1;
        }
    }

    // Displays the custom attributes applied to the specified member.
    public static void DisplayAttributes(Int32 indent, MemberInfo mi)
    {
        // Get the set of custom attributes; if none exist, just return.
        object[] attrs = mi.GetCustomAttributes(false);
        if (attrs.Length==0) {return;}

        // Display the custom attributes applied to this member.
        Display(indent+1, "Attributes:");
        foreach ( object o in attrs )
        {
            Display(indent+2, "{0}", o.ToString());
        }
    }

    // Display a formatted string indented by the specified amount.
    public static void Display(Int32 indent, string format, params object[] param)

    {
        Console.Write(new string(' ', indent*2));
        Console.WriteLine(format, param);
    }
}

//The output shown below is abbreviated.
//
//Assembly identity=ReflectionCS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
//  Codebase=file:///C:/Documents and Settings/test/My Documents/Visual Studio 2005/Projects/Reflection/Reflection/obj/Debug/Reflection.exe
//Referenced assemblies:
//  Name=mscorlib, Version=2.0.0.0, Culture=, PublicKey token=B7-7A-5C-56-19-34-E0-89
//
//Assembly: mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//
//  Type: System.Object
//    Member: GetType
//    Member: ToString
//    Member: Equals
//      Parameter: Type=System.Object, Name=obj
//    Member: Equals
//      Parameter: Type=System.Object, Name=objA
//      Parameter: Type=System.Object, Name=objB
//    Member: ReferenceEquals
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//      Parameter: Type=System.Object, Name=objA
//      Parameter: Type=System.Object, Name=objB
//    Member: GetHashCode
//    Member: .ctor
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//
//  Type: System.ICloneable
//    Member: Clone
//
//  Type: System.Collections.IEnumerable
//    Member: GetEnumerator
//      Attributes:
//        System.Runtime.InteropServices.DispIdAttribute
//
//  Type: System.Collections.ICollection
//    Member: CopyTo
//      Parameter: Type=System.Array, Name=array
//      Parameter: Type=System.Int32, Name=index
//    Member: get_Count
//    Member: get_SyncRoot
//    Member: get_IsSynchronized
//    Member: Count
//      Accessor method: Int32 get_Count()
//    Member: SyncRoot
//      Accessor method: System.Object get_SyncRoot()
//    Member: IsSynchronized
//      Accessor method: Boolean get_IsSynchronized()
//
//  Type: System.Collections.IList
//    Member: get_Item
//      Parameter: Type=System.Int32, Name=index
//    Member: set_Item
//      Parameter: Type=System.Int32, Name=index
//      Parameter: Type=System.Object, Name=value
//    Member: Add
//      Parameter: Type=System.Object, Name=value
//    Member: Contains
//      Parameter: Type=System.Object, Name=value
//    Member: Clear
//    Member: get_IsReadOnly
//    Member: get_IsFixedSize
//    Member: IndexOf
//      Parameter: Type=System.Object, Name=value
//    Member: Insert
//      Parameter: Type=System.Int32, Name=index
//      Parameter: Type=System.Object, Name=value
//    Member: Remove
//      Parameter: Type=System.Object, Name=value
//    Member: RemoveAt
//      Parameter: Type=System.Int32, Name=index
//    Member: Item
//      Accessor method: System.Object get_Item(Int32)
//      Accessor method: Void set_Item(Int32, System.Object)
//    Member: IsReadOnly
//      Accessor method: Boolean get_IsReadOnly()
//    Member: IsFixedSize
//      Accessor method: Boolean get_IsFixedSize()
//
//  Type: System.Array
//    Member: IndexOf
//      Parameter: Type=T[], Name=array
//      Parameter: Type=T, Name=value
//    Member: AsReadOnly
//      Parameter: Type=T[], Name=array
//    Member: Resize
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//      Parameter: Type=T[]&, Name=array
//      Parameter: Type=System.Int32, Name=newSize
//    Member: BinarySearch
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//      Parameter: Type=T[], Name=array
//      Parameter: Type=T, Name=value
//    Member: BinarySearch
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//      Parameter: Type=T[], Name=array
//      Parameter: Type=T, Name=value
//      Parameter: Type=System.Collections.Generic.IComparer`1[T], Name=comparer

Poznámky

Vlastnosti jsou logicky stejné jako pole. Vlastnost je pojmenovaný aspekt stavu objektu, jehož hodnota je obvykle přístupná prostřednictvím get přístupových objektů a set . Vlastnosti můžou být jen pro čtení. V takovém případě není rutina sady podporovaná.

Poznámka

Chcete-li zjistit, zda je staticvlastnost , musíte získat MethodInfo pro get přístup nebo set voláním GetGetMethod metody nebo GetSetMethod a prozkoumat její IsStatic vlastnost.

Několik metod v této třídě předpokládá, že get metody přistupování a set přistupování vlastnosti mají určité formáty. Podpisy get metod a set musí odpovídat následující konvenci:

  • Návratový get typ metody a poslední argument set metody musí být identické. Toto je typ vlastnosti.

  • Metody get a set musí mít stejný počet, typ a pořadí indexů.

Pokud tento formát není dodržen, chování GetValue metod a SetValue je nedefinováno.

Volání ICustomAttributeProvider.GetCustomAttributes při PropertyInfo parametru inheritGetCustomAttributes je true nechodí hierarchií typů. Slouží System.Attribute k dědění vlastních atributů.

Poznámky pro implementátory

Když dědíte z PropertyInfo, musíte přepsat následující členy: GetValue(Object, Object[]), SetValue(Object, Object, BindingFlags, Binder, Object[], CultureInfo), GetAccessors(Boolean), GetGetMethod(Boolean), GetSetMethod(Boolean)a GetIndexParameters().

Konstruktory

PropertyInfo()

Inicializuje novou instanci PropertyInfo třídy .

Vlastnosti

Attributes

Získá atributy pro tuto vlastnost.

CanRead

Získá hodnotu označující, zda lze číst vlastnost.

CanWrite

Získá hodnotu označující, zda lze vlastnost zapisovat do.

CustomAttributes

Získá kolekci, která obsahuje vlastní atributy tohoto člena.

(Zděděno od MemberInfo)
DeclaringType

Získá třídu, která deklaruje tento člen.

(Zděděno od MemberInfo)
GetMethod

get Získá přístup pro tuto vlastnost.

IsCollectible

Získá hodnotu, která označuje, zda je tento MemberInfo objekt součástí sestavení uchovávaného v collectible AssemblyLoadContext.

(Zděděno od MemberInfo)
IsSpecialName

Získá hodnotu označující, zda je vlastnost speciální název.

MemberType

MemberTypes Získá hodnotu označující, že tento člen je vlastnost.

MemberType

Při přepsání v odvozené třídě získá MemberTypes hodnotu označující typ členu – metoda, konstruktor, událost atd.

(Zděděno od MemberInfo)
MetadataToken

Získá hodnotu, která identifikuje prvek metadat.

(Zděděno od MemberInfo)
Module

Získá modul, ve kterém je definován typ, který deklaruje člen reprezentovaný aktuální MemberInfo .

(Zděděno od MemberInfo)
Name

Získá název aktuálního člena.

(Zděděno od MemberInfo)
PropertyType

Získá typ této vlastnosti.

ReflectedType

Získá objekt třídy, který byl použit k získání této instance .MemberInfo

(Zděděno od MemberInfo)
SetMethod

set Získá přístup pro tuto vlastnost.

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od MemberInfo)
GetAccessors()

Vrátí pole, jehož prvky odrážejí veřejné get objekty a set přístupové objekty vlastnosti, které odráží aktuální instance.

GetAccessors(Boolean)

Vrátí pole, jehož prvky odrážejí veřejné, a pokud je zadáno, neveřejné get a set přístupové objekty vlastnosti odrážející aktuální instanci.

GetConstantValue()

Vrátí hodnotu literálu přidruženou k vlastnosti kompilátorem.

GetCustomAttributes(Boolean)

Při přepsání v odvozené třídě vrátí pole všech vlastních atributů použitých pro tento člen.

(Zděděno od MemberInfo)
GetCustomAttributes(Type, Boolean)

Při přepsání v odvozené třídě vrátí pole vlastních atributů použitých u tohoto člena a identifikovaných pomocí Type.

(Zděděno od MemberInfo)
GetCustomAttributesData()

Vrátí seznam CustomAttributeData objektů představujících data o atributech, které byly použity na cílového člena.

(Zděděno od MemberInfo)
GetGetMethod()

Vrátí veřejný get přístupový objekt pro tuto vlastnost.

GetGetMethod(Boolean)

Při přepsání v odvozené třídě vrátí veřejný nebo neveřejný get přístupový objekt pro tuto vlastnost.

GetHashCode()

Vrátí hodnotu hash pro tuto instanci.

GetHashCode()

Vrátí hodnotu hash pro tuto instanci.

(Zděděno od MemberInfo)
GetIndexParameters()

Při přepsání v odvozené třídě vrátí pole všech parametrů indexu pro vlastnost .

GetModifiedPropertyType()

Získá změněný typ tohoto objektu vlastnosti.

GetOptionalCustomModifiers()

Vrátí pole typů představujících volitelné vlastní modifikátory vlastnosti.

GetRawConstantValue()

Vrátí hodnotu literálu přidruženou k vlastnosti kompilátorem.

GetRequiredCustomModifiers()

Vrátí pole typů představujících požadované vlastní modifikátory vlastnosti.

GetSetMethod()

Vrátí veřejný set přístupový objekt pro tuto vlastnost.

GetSetMethod(Boolean)

Při přepsání v odvozené třídě vrátí set přístup pro tuto vlastnost.

GetType()

Zjistí atributy vlastnosti a poskytuje přístup k metadatům vlastnosti.

GetType()

Zjistí atributy člena a poskytuje přístup k metadatům člena.

(Zděděno od MemberInfo)
GetValue(Object)

Vrátí hodnotu vlastnosti zadaného objektu.

GetValue(Object, BindingFlags, Binder, Object[], CultureInfo)

Při přepsání v odvozené třídě vrátí hodnotu vlastnosti zadaného objektu, který má zadanou vazbu, index a informace specifické pro jazykovou verzi.

GetValue(Object, Object[])

Vrátí hodnotu vlastnosti zadaného objektu s volitelnými hodnotami indexu pro indexované vlastnosti.

HasSameMetadataDefinitionAs(MemberInfo)

Zjistí atributy vlastnosti a poskytuje přístup k metadatům vlastnosti.

(Zděděno od MemberInfo)
IsDefined(Type, Boolean)

Při přepsání v odvozené třídě, označuje, zda jeden nebo více atributů zadaného typu nebo jeho odvozených typů je použito na tento člen.

(Zděděno od MemberInfo)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
SetValue(Object, Object)

Nastaví hodnotu vlastnosti zadaného objektu.

SetValue(Object, Object, BindingFlags, Binder, Object[], CultureInfo)

Při přepsání v odvozené třídě nastaví hodnotu vlastnosti pro zadaný objekt, který má zadanou vazbu, index a informace specifické pro jazykovou verzi.

SetValue(Object, Object, Object[])

Nastaví hodnotu vlastnosti zadaného objektu s volitelnými hodnotami indexu pro vlastnosti indexu.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Operátory

Equality(PropertyInfo, PropertyInfo)

Určuje, zda jsou dva PropertyInfo objekty stejné.

Inequality(PropertyInfo, PropertyInfo)

Určuje, zda se dva PropertyInfo objekty nerovnají.

Explicitní implementace rozhraní

_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

(Zděděno od MemberInfo)
_MemberInfo.GetType()

Type Získá objekt představující MemberInfo třídu .

(Zděděno od MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní.

(Zděděno od MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).

(Zděděno od MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.

(Zděděno od MemberInfo)
_PropertyInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

_PropertyInfo.GetType()

Type Získá objekt představující PropertyInfo typ.

_PropertyInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní.

_PropertyInfo.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).

_PropertyInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.

ICustomAttributeProvider.GetCustomAttributes(Boolean)

Vrátí pole všech vlastních atributů definovaných v tomto členu, s výjimkou pojmenovaných atributů, nebo prázdné pole, pokud neexistují žádné vlastní atributy.

(Zděděno od MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

Vrátí pole vlastních atributů definovaných v tomto členu, identifikované typem nebo prázdné pole, pokud neexistují žádné vlastní atributy tohoto typu.

(Zděděno od MemberInfo)
ICustomAttributeProvider.IsDefined(Type, Boolean)

Určuje, zda je u tohoto člena attributeType definována jedna nebo více instancí.

(Zděděno od MemberInfo)

Metody rozšíření

GetCustomAttribute(MemberInfo, Type)

Načte vlastní atribut zadaného typu, který je použit na zadaný člen.

GetCustomAttribute(MemberInfo, Type, Boolean)

Načte vlastní atribut zadaného typu, který je použit na zadaný člen, a volitelně zkontroluje předky tohoto člena.

GetCustomAttribute<T>(MemberInfo)

Načte vlastní atribut zadaného typu, který je použit na zadaný člen.

GetCustomAttribute<T>(MemberInfo, Boolean)

Načte vlastní atribut zadaného typu, který je použit na zadaný člen, a volitelně zkontroluje předky tohoto člena.

GetCustomAttributes(MemberInfo)

Načte kolekci vlastních atributů, které jsou použity na zadaného člena.

GetCustomAttributes(MemberInfo, Boolean)

Načte kolekci vlastních atributů, které jsou použity na zadaného člena, a volitelně zkontroluje předky tohoto člena.

GetCustomAttributes(MemberInfo, Type)

Načte kolekci vlastních atributů zadaného typu, které jsou použity na zadaného člena.

GetCustomAttributes(MemberInfo, Type, Boolean)

Načte kolekci vlastních atributů zadaného typu, které jsou použity na zadaného člena, a volitelně zkontroluje předky tohoto člena.

GetCustomAttributes<T>(MemberInfo)

Načte kolekci vlastních atributů zadaného typu, které jsou použity na zadaného člena.

GetCustomAttributes<T>(MemberInfo, Boolean)

Načte kolekci vlastních atributů zadaného typu, které jsou použity na zadaného člena, a volitelně zkontroluje předky tohoto člena.

IsDefined(MemberInfo, Type)

Určuje, zda jsou na zadaný člen použity vlastní atributy zadaného typu.

IsDefined(MemberInfo, Type, Boolean)

Určuje, zda vlastní atributy zadaného typu jsou použity na zadaného člena a volitelně použity na jeho nadřazené položky.

GetMetadataToken(MemberInfo)

Získá token metadat pro daný člen, pokud je k dispozici.

HasMetadataToken(MemberInfo)

Vrátí hodnotu, která označuje, zda je token metadat k dispozici pro zadaného člena.

GetAccessors(PropertyInfo)

Zjistí atributy vlastnosti a poskytuje přístup k metadatům vlastnosti.

GetAccessors(PropertyInfo, Boolean)

Zjistí atributy vlastnosti a poskytuje přístup k metadatům vlastnosti.

GetGetMethod(PropertyInfo)

Zjistí atributy vlastnosti a poskytuje přístup k metadatům vlastnosti.

GetGetMethod(PropertyInfo, Boolean)

Zjistí atributy vlastnosti a poskytuje přístup k metadatům vlastnosti.

GetSetMethod(PropertyInfo)

Zjistí atributy vlastnosti a poskytuje přístup k metadatům vlastnosti.

GetSetMethod(PropertyInfo, Boolean)

Zjistí atributy vlastnosti a poskytuje přístup k metadatům vlastnosti.

Platí pro

Produkt Verze
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Bezpečný přístup z více vláken

Tento typ je bezpečný pro přístup z více vláken.