Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase PropertyInfo

 

Publicado: octubre de 2016

Detecta los atributos de una propiedad y proporciona acceso a sus metadatos.

Espacio de nombres:   System.Reflection
Ensamblado:  mscorlib (en mscorlib.dll)


[SerializableAttribute]
[ClassInterfaceAttribute(ClassInterfaceType.None)]
[ComVisibleAttribute(true)]
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
public abstract class PropertyInfo : MemberInfo, _PropertyInfo

NombreDescripción
System_CAPS_protmethodPropertyInfo()

Inicializa una nueva instancia de la clase PropertyInfo.

NombreDescripción
System_CAPS_pubpropertyAttributes

Obtiene los atributos de esta propiedad.

System_CAPS_pubpropertyCanRead

Obtiene un valor que indica si se puede leer la propiedad.

System_CAPS_pubpropertyCanWrite

Obtiene un valor que indica si se puede escribir en la propiedad.

System_CAPS_pubpropertyCustomAttributes

Obtiene una colección que contiene los atributos personalizados de este miembro.(Heredado de MemberInfo).

System_CAPS_pubpropertyDeclaringType

Obtiene la clase que declara a este miembro.(Heredado de MemberInfo).

System_CAPS_pubpropertyGetMethod

Obtiene el descriptor de acceso get de esta propiedad.

System_CAPS_pubpropertyIsSpecialName

Obtiene un valor que indica si la propiedad es el nombre especial.

System_CAPS_pubpropertyMemberType

Obtiene un valor MemberTypes que indica que este miembro es una propiedad.(Invalida MemberInfo.MemberType).

System_CAPS_pubpropertyMetadataToken

Obtiene un valor que identifica un elemento de metadatos.(Heredado de MemberInfo).

System_CAPS_pubpropertyModule

Obtiene el módulo en el que el tipo que declara el miembro representado por el actual MemberInfo está definido.(Heredado de MemberInfo).

System_CAPS_pubpropertyName

Obtiene el nombre del miembro actual.(Heredado de MemberInfo).

System_CAPS_pubpropertyPropertyType

Obtiene el tipo de esta propiedad.

System_CAPS_pubpropertyReflectedType

Obtiene el objeto de clase utilizado para obtener esta instancia de MemberInfo.(Heredado de MemberInfo).

System_CAPS_pubpropertySetMethod

Obtiene el descriptor de acceso set de esta propiedad.

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Invalida MemberInfo.Equals(Object)).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodGetAccessors()

Devuelve una matriz cuyos elementos reflejan los descriptores de acceso públicos get y set de la propiedad que refleja la instancia actual.

System_CAPS_pubmethodGetAccessors(Boolean)

Devuelve una matriz cuyos elementos reflejan los descriptores de acceso públicos y, si se especifica, no públicos, get y set de la propiedad que refleja la instancia actual.

System_CAPS_pubmethodGetConstantValue()

Devuelve un valor literal asociado a la propiedad mediante un compilador.

System_CAPS_pubmethodGetCustomAttributes(Boolean)

Cuando se invalida en una clase derivada, devuelve una matriz de todos los atributos personalizados aplicados a este miembro.(Heredado de MemberInfo).

System_CAPS_pubmethodGetCustomAttributes(Type, Boolean)

Cuando se invalida en una clase derivada, devuelve una matriz de atributos personalizados aplicados a este miembro e identificado por Type.(Heredado de MemberInfo).

System_CAPS_pubmethodGetCustomAttributesData()

Devuelve una lista de CustomAttributeData objetos que representan datos sobre los atributos que se han aplicado al miembro de destino.(Heredado de MemberInfo).

System_CAPS_pubmethodGetGetMethod()

Devuelve el descriptor de acceso get público de esta propiedad.

System_CAPS_pubmethodGetGetMethod(Boolean)

Cuando se reemplaza en una clase derivada, devuelve el descriptor de acceso get público o no público de esta propiedad.

System_CAPS_pubmethodGetHashCode()

Devuelve el código hash de esta instancia.(Invalida MemberInfo.GetHashCode()).

System_CAPS_pubmethodGetIndexParameters()

Cuando se reemplaza en una clase derivada, devuelve una matriz de todos los parámetros de índice de la propiedad.

System_CAPS_pubmethodGetOptionalCustomModifiers()

Devuelve una matriz de tipos que representan los modificadores personalizados opcionales de la propiedad.

System_CAPS_pubmethodGetRawConstantValue()

Devuelve un valor literal asociado a la propiedad mediante un compilador.

System_CAPS_pubmethodGetRequiredCustomModifiers()

Devuelve una matriz de tipos que representan los modificadores personalizados necesarios de la propiedad.

System_CAPS_pubmethodGetSetMethod()

Devuelve el descriptor de acceso set público de esta propiedad.

System_CAPS_pubmethodGetSetMethod(Boolean)

Cuando se reemplaza en una clase derivada, devuelve el descriptor de acceso set de esta propiedad.

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodGetValue(Object)

Devuelve el valor de propiedad de un objeto especificado.

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

Cuando se reemplaza en una clase derivada, devuelve el valor de propiedad de un objeto especificado que tiene el enlace, el índice y la información específica de la referencia cultural especificados.

System_CAPS_pubmethodGetValue(Object, Object[])

Devuelve el valor de propiedad de un objeto especificado con valores de índice opcionales para las propiedades indizadas.

System_CAPS_pubmethodIsDefined(Type, Boolean)

Cuando se invalida en una clase derivada, indica si uno o varios atributos del tipo especificado o de sus tipos derivados se aplican a este miembro.(Heredado de MemberInfo).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodSetValue(Object, Object)

Establece el valor de propiedad de un objeto especificado.

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

Cuando se reemplaza en una clase derivada, establece el valor de propiedad para un objeto especificado que tiene el enlace, el índice y la información específica de la referencia cultural especificados.

System_CAPS_pubmethodSetValue(Object, Object, Object[])

Establece el valor de propiedad de un objeto especificado con valores de índice opcionales para las propiedades del índice.

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

NombreDescripción
System_CAPS_puboperatorSystem_CAPS_staticEquality(PropertyInfo, PropertyInfo)

Indica si dos objetos PropertyInfo son iguales.

System_CAPS_puboperatorSystem_CAPS_staticInequality(PropertyInfo, PropertyInfo)

Indica si dos objetos PropertyInfo no son iguales.

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethod_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.(Heredado de MemberInfo).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_MemberInfo.GetType()

Obtiene un Type objeto que representa la MemberInfo clase.(Heredado de MemberInfo).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera la información de tipo de un objeto, que se puede usar después para obtener la información de tipo de una interfaz.(Heredado de MemberInfo).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_MemberInfo.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Heredado de MemberInfo).

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

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.(Heredado de MemberInfo).

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

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

System_CAPS_pubinterfaceSystem_CAPS_privmethod_PropertyInfo.GetType()

Obtiene un objeto Type que representa el tipo de PropertyInfo.

System_CAPS_pubinterfaceSystem_CAPS_privmethod_PropertyInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera la información de tipo de un objeto, que se puede usar después para obtener la información de tipo de una interfaz.

System_CAPS_pubinterfaceSystem_CAPS_privmethod_PropertyInfo.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

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

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.

NombreDescripción
System_CAPS_pubmethodGetCustomAttribute(Type)

Sobrecargado. Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro especificado.(Definido por CustomAttributeExtensions).

System_CAPS_pubmethodGetCustomAttribute(Type, Boolean)

Sobrecargado. Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro especificado y, opcionalmente, inspecciona a los antecesores del miembro.(Definido por CustomAttributeExtensions).

System_CAPS_pubmethodGetCustomAttribute<T>()

Sobrecargado. Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro especificado.(Definido por CustomAttributeExtensions).

System_CAPS_pubmethodGetCustomAttribute<T>(Boolean)

Sobrecargado. Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro especificado y, opcionalmente, inspecciona a los antecesores del miembro.(Definido por CustomAttributeExtensions).

System_CAPS_pubmethodGetCustomAttributes()

Sobrecargado. Recupera una colección de atributos personalizados que se aplican a un miembro especificado.(Definido por CustomAttributeExtensions).

System_CAPS_pubmethodGetCustomAttributes(Type)

Sobrecargado. Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un miembro especificado.(Definido por CustomAttributeExtensions).

System_CAPS_pubmethodGetCustomAttributes<T>(Boolean)

Sobrecargado. Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un miembro especificado y, opcionalmente, inspecciona a los antecesores del miembro.(Definido por CustomAttributeExtensions).

System_CAPS_pubmethodIsDefined(Type)

Sobrecargado. Indica si se aplican atributos personalizados de un tipo especificado a un miembro especificado.(Definido por CustomAttributeExtensions).

Propiedades son lógicamente, como campos. Una propiedad es un aspecto con nombre del estado de un objeto cuyo valor es normalmente accesible a través de get y set descriptores de acceso. Propiedades pueden ser de sólo lectura, en cuyo caso no se admite una rutina de conjunto.

System_CAPS_noteNota

Para determinar si una propiedad es static, debe obtener el MethodInfo para el get o set descriptor de acceso, mediante una llamada a la GetGetMethod o GetSetMethod (método) y examine su IsStatic propiedad.

Varios métodos de esta clase asume que el get descriptor de acceso y set métodos de descriptor de acceso de una propiedad tienen un formato determinado. Las firmas de los get y set métodos deben coincidir con la siguiente convención:

  • El tipo de valor devuelto de la get (método) y el último argumento de la set método debe ser idéntico. Este es el tipo de la propiedad.

  • El get y set métodos deben tener el mismo número, tipo y orden de índices.

Si no se sigue este formato, el comportamiento de la GetValue y SetValue métodos es indefinido.

Llamar a ICustomAttributeProvider.GetCustomAttributes en PropertyInfo cuando el inherit parámetro de GetCustomAttributes es true no se recorre la jerarquía de tipos. Use System.Attribute para heredar los atributos personalizados.

Notas para desarrolladores de herederos:

Al heredar de PropertyInfo, debe reemplazar los miembros siguientes: GetValue, SetValue, GetAccessors, GetGetMethod, GetSetMethod, y GetIndexParameters.

Este ejemplo muestra cómo utilizar diversas clases de reflexión para analizar los metadatos contenidos en un ensamblado.

System_CAPS_noteNota

Este ejemplo genera aproximadamente 55.000 líneas de datos, que puede redirigir a un archivo de texto en el símbolo del sistema, como sigue: example.exe > infopropiedad.txt

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

SecurityAction.InheritanceDemand

for full trust for inheritors. This class cannot be inherited by partially trusted code.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1

Este tipo es seguro para la ejecución de subprocesos.

Volver al principio
Mostrar: