Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Classe PropertyBuilder

 

Define as propriedades de um tipo.

Namespace:   System.Reflection.Emit
Assembly:  mscorlib (em mscorlib.dll)

System.Object
  System.Reflection.MemberInfo
    System.Reflection.PropertyInfo
      System.Reflection.Emit.PropertyBuilder

[ClassInterfaceAttribute(ClassInterfaceType.None)]
[ComVisibleAttribute(true)]
[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
public sealed class PropertyBuilder : PropertyInfo, _PropertyBuilder

NomeDescrição
System_CAPS_pubpropertyAttributes

Obtém os atributos para essa propriedade.(Substitui o PropertyInfo.Attributes.)

System_CAPS_pubpropertyCanRead

Obtém um valor que indica se a propriedade pode ser lido.(Substitui o PropertyInfo.CanRead.)

System_CAPS_pubpropertyCanWrite

Obtém um valor que indica se a propriedade pode ser gravada.(Substitui o PropertyInfo.CanWrite.)

System_CAPS_pubpropertyCustomAttributes

Obtém uma coleção que contém os atributos personalizados desse membro.(Herdado de MemberInfo.)

System_CAPS_pubpropertyDeclaringType

Obtém a classe que declara esse membro.(Substitui o MemberInfo.DeclaringType.)

System_CAPS_pubpropertyGetMethod

Obtém o acessador get dessa propriedade.(Herdado de PropertyInfo.)

System_CAPS_pubpropertyIsSpecialName

Obtém um valor que indica se a propriedade é o nome especial.(Herdado de PropertyInfo.)

System_CAPS_pubpropertyMemberType

Obtém um valor MemberTypes que indica que este membro é uma propriedade.(Herdado de PropertyInfo.)

System_CAPS_pubpropertyMetadataToken

Obtém um valor que identifica um elemento de metadados.(Herdado de MemberInfo.)

System_CAPS_pubpropertyModule

Obtém o módulo no qual o tipo que declara a propriedade atual está sendo definido.(Substitui o MemberInfo.Module.)

System_CAPS_pubpropertyName

Obtém o nome desse membro.(Substitui o MemberInfo.Name.)

System_CAPS_pubpropertyPropertyToken

Recupera o token para essa propriedade.

System_CAPS_pubpropertyPropertyType

Obtém o tipo do campo da propriedade.(Substitui o PropertyInfo.PropertyType.)

System_CAPS_pubpropertyReflectedType

Obtém o objeto de classe que foi usado para obter essa instância do MemberInfo.(Substitui o MemberInfo.ReflectedType.)

System_CAPS_pubpropertySetMethod

Obtém o acessador set dessa propriedade.(Herdado de PropertyInfo.)

NomeDescrição
System_CAPS_pubmethodAddOtherMethod(MethodBuilder)

Adiciona um dos outros métodos associados a essa propriedade.

System_CAPS_pubmethodEquals(Object)

Retorna um valor que indica se esta instância é igual ao objeto especificado.(Herdado de PropertyInfo.)

System_CAPS_pubmethodGetAccessors()

Retorna uma matriz cujos elementos refletem os acessadores get e set públicos da propriedade refletida pela instância atual.(Herdado de PropertyInfo.)

System_CAPS_pubmethodGetAccessors(Boolean)

Retorna uma matriz de público e não público get e set acessadores nessa propriedade.(Substitui o PropertyInfo.GetAccessors(Boolean).)

System_CAPS_pubmethodGetConstantValue()

Retorna um valor literal associado à propriedade por um compilador.(Herdado de PropertyInfo.)

System_CAPS_pubmethodGetCustomAttributes(Boolean)

Retorna uma matriz de todos os atributos personalizados para essa propriedade.(Substitui o MemberInfo.GetCustomAttributes(Boolean).)

System_CAPS_pubmethodGetCustomAttributes(Type, Boolean)

Retorna uma matriz de atributos personalizados identificado por Type.(Substitui o MemberInfo.GetCustomAttributes(Type, Boolean).)

System_CAPS_pubmethodGetCustomAttributesData()

Retorna uma lista de objetos CustomAttributeData que representam dados sobre os atributos que foram aplicados ao membro de destino.(Herdado de MemberInfo.)

System_CAPS_pubmethodGetGetMethod()

Retorna o acessador get público para essa propriedade.(Herdado de PropertyInfo.)

System_CAPS_pubmethodGetGetMethod(Boolean)

Retorna o público e não público acessador get para essa propriedade.(Substitui o PropertyInfo.GetGetMethod(Boolean).)

System_CAPS_pubmethodGetHashCode()

Retorna o código hash para essa instância.(Herdado de PropertyInfo.)

System_CAPS_pubmethodGetIndexParameters()

Retorna uma matriz de todos os parâmetros de índice para a propriedade.(Substitui o PropertyInfo.GetIndexParameters().)

System_CAPS_pubmethodGetOptionalCustomModifiers()

Retorna uma matriz de tipos que representam os modificadores personalizados opcionais da propriedade.(Herdado de PropertyInfo.)

System_CAPS_pubmethodGetRawConstantValue()

Retorna um valor literal associado à propriedade por um compilador.(Herdado de PropertyInfo.)

System_CAPS_pubmethodGetRequiredCustomModifiers()

Retorna uma matriz de tipos que representam os modificadores personalizados necessários da propriedade.(Herdado de PropertyInfo.)

System_CAPS_pubmethodGetSetMethod()

Retorna o acessador set público para essa propriedade.(Herdado de PropertyInfo.)

System_CAPS_pubmethodGetSetMethod(Boolean)

Retorna o acessador set para essa propriedade.(Substitui o PropertyInfo.GetSetMethod(Boolean).)

System_CAPS_pubmethodGetType()

Obtém o Type da instância atual.(Herdado de Object.)

System_CAPS_pubmethodGetValue(Object)

Retorna o valor da propriedade de um objeto especificado.(Herdado de PropertyInfo.)

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

Obtém o valor de uma propriedade ter especificado associação, índice, e CultureInfo.(Substitui o PropertyInfo.GetValue(Object, BindingFlags, Binder, Object[], CultureInfo).)

System_CAPS_pubmethodGetValue(Object, Object[])

Obtém o valor da propriedade indexada, chamando o método de getter da propriedade.(Substitui o PropertyInfo.GetValue(Object, Object[]).)

System_CAPS_pubmethodIsDefined(Type, Boolean)

Indica se uma ou mais instância de attributeType está definido nessa propriedade.(Substitui o MemberInfo.IsDefined(Type, Boolean).)

System_CAPS_pubmethodSetConstant(Object)

Define o valor padrão dessa propriedade.

System_CAPS_pubmethodSetCustomAttribute(ConstructorInfo, Byte[])

Defina um atributo personalizado com um blob de atributo personalizado especificado.

System_CAPS_pubmethodSetCustomAttribute(CustomAttributeBuilder)

Defina um atributo personalizado usando um construtor de atributo personalizado.

System_CAPS_pubmethodSetGetMethod(MethodBuilder)

Define o método que obtém o valor da propriedade.

System_CAPS_pubmethodSetSetMethod(MethodBuilder)

Define o método que define o valor da propriedade.

System_CAPS_pubmethodSetValue(Object, Object)

Define o valor da propriedade de um objeto especificado.(Herdado de PropertyInfo.)

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

Define o valor da propriedade para o objeto fornecido como o valor especificado.(Substitui o PropertyInfo.SetValue(Object, Object, BindingFlags, Binder, Object[], CultureInfo).)

System_CAPS_pubmethodSetValue(Object, Object, Object[])

Define o valor da propriedade com valores de índice opcional para propriedades do índice.(Substitui o PropertyInfo.SetValue(Object, Object, Object[]).)

System_CAPS_pubmethodToString()

Retorna uma cadeia de caracteres que representa o objeto atual.(Herdado de Object.)

NomeDescrição
System_CAPS_pubinterfaceSystem_CAPS_privmethod_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.(Herdado de MemberInfo.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_MemberInfo.GetType()

Obtém uma Type objeto representando o MemberInfo classe.(Herdado de MemberInfo.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usada para obter as informações de tipo para uma interface.(Herdado de MemberInfo.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_MemberInfo.GetTypeInfoCount(UInt32)

Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1).(Herdado de MemberInfo.)

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

Fornece acesso às propriedades e métodos expostos por um objeto.(Herdado de MemberInfo.)

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

System_CAPS_pubinterfaceSystem_CAPS_privmethod_PropertyBuilder.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usada para obter as informações de tipo para uma interface.

System_CAPS_pubinterfaceSystem_CAPS_privmethod_PropertyBuilder.GetTypeInfoCount(UInt32)

Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1).

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

Fornece acesso às propriedades e métodos expostos por um objeto.

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.(Herdado de PropertyInfo.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_PropertyInfo.GetType()

Obtém uma Type objeto representando o PropertyInfo tipo.(Herdado de PropertyInfo.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_PropertyInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usada para obter as informações de tipo para uma interface.(Herdado de PropertyInfo.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_PropertyInfo.GetTypeInfoCount(UInt32)

Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1).(Herdado de PropertyInfo.)

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

Fornece acesso às propriedades e métodos expostos por um objeto.(Herdado de PropertyInfo.)

NomeDescrição
System_CAPS_pubmethodGetCustomAttribute(Type)

Sobrecarregado. Recupera um atributo personalizado de um tipo especificado aplicado a um membro especificado.(Definido pelo CustomAttributeExtensions.)

System_CAPS_pubmethodGetCustomAttribute(Type, Boolean)

Sobrecarregado. Recupera um atributo personalizado de um tipo especificado que é aplicado a um membro especificado e, opcionalmente, inspeciona os ancestrais do membro.(Definido pelo CustomAttributeExtensions.)

System_CAPS_pubmethodGetCustomAttribute<T>()

Sobrecarregado. Recupera um atributo personalizado de um tipo especificado aplicado a um membro especificado.(Definido pelo CustomAttributeExtensions.)

System_CAPS_pubmethodGetCustomAttribute<T>(Boolean)

Sobrecarregado. Recupera um atributo personalizado de um tipo especificado que é aplicado a um membro especificado e, opcionalmente, inspeciona os ancestrais do membro.(Definido pelo CustomAttributeExtensions.)

System_CAPS_pubmethodGetCustomAttributes()

Sobrecarregado. Recupera uma coleção de atributos personalizados que são aplicadas a um membro especificado.(Definido pelo CustomAttributeExtensions.)

System_CAPS_pubmethodGetCustomAttributes(Type)

Sobrecarregado. Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicadas a um membro especificado.(Definido pelo CustomAttributeExtensions.)

System_CAPS_pubmethodGetCustomAttributes<T>(Boolean)

Sobrecarregado. Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicadas a um membro especificado e, opcionalmente, inspeciona os ancestrais do membro.(Definido pelo CustomAttributeExtensions.)

System_CAPS_pubmethodIsDefined(Type)

Sobrecarregado. Indica se os atributos personalizados de um tipo especificado são aplicados a um membro especificado.(Definido pelo CustomAttributeExtensions.)

A PropertyBuilder is always associated with a TypeBuilder. The TypeBuilder. DefineProperty method will return a new PropertyBuilder to a client.

The following code sample demonstrates how to implement properties in a dynamic type using a PropertyBuilder obtained via M:System.Reflection.Emit.TypeBuilder.DefineProperty(System.String,System.Reflection.PropertyAttributes,System.Type,System.Type[]) to create the property framework and an associated T:System.Reflection.Emit.MethodBuilder to implement the IL logic within the property.


using System;
using System.Threading;
using System.Reflection;
using System.Reflection.Emit;

class PropertyBuilderDemo

{

   public static Type BuildDynamicTypeWithProperties() 
   {
        AppDomain myDomain = Thread.GetDomain();
        AssemblyName myAsmName = new AssemblyName();
        myAsmName.Name = "MyDynamicAssembly";

        // To generate a persistable assembly, specify AssemblyBuilderAccess.RunAndSave.
        AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(myAsmName,
                                                        AssemblyBuilderAccess.RunAndSave);
        // Generate a persistable single-module assembly.
        ModuleBuilder myModBuilder = 
            myAsmBuilder.DefineDynamicModule(myAsmName.Name, myAsmName.Name + ".dll");

        TypeBuilder myTypeBuilder = myModBuilder.DefineType("CustomerData", 
                                                        TypeAttributes.Public);

        FieldBuilder customerNameBldr = myTypeBuilder.DefineField("customerName",
                                                        typeof(string),
                                                        FieldAttributes.Private);

        // The last argument of DefineProperty is null, because the
        // property has no parameters. (If you don't specify null, you must
        // specify an array of Type objects. For a parameterless property,
        // use an array with no elements: new Type[] {})
        PropertyBuilder custNamePropBldr = myTypeBuilder.DefineProperty("CustomerName",
                                                         PropertyAttributes.HasDefault,
                                                         typeof(string),
                                                         null);

        // The property set and property get methods require a special
        // set of attributes.
        MethodAttributes getSetAttr = 
            MethodAttributes.Public | MethodAttributes.SpecialName |
                MethodAttributes.HideBySig;

        // Define the "get" accessor method for CustomerName.
        MethodBuilder custNameGetPropMthdBldr = 
            myTypeBuilder.DefineMethod("get_CustomerName",
                                       getSetAttr,        
                                       typeof(string),
                                       Type.EmptyTypes);

        ILGenerator custNameGetIL = custNameGetPropMthdBldr.GetILGenerator();

        custNameGetIL.Emit(OpCodes.Ldarg_0);
        custNameGetIL.Emit(OpCodes.Ldfld, customerNameBldr);
        custNameGetIL.Emit(OpCodes.Ret);

        // Define the "set" accessor method for CustomerName.
        MethodBuilder custNameSetPropMthdBldr = 
            myTypeBuilder.DefineMethod("set_CustomerName",
                                       getSetAttr,     
                                       null,
                                       new Type[] { typeof(string) });

        ILGenerator custNameSetIL = custNameSetPropMthdBldr.GetILGenerator();

        custNameSetIL.Emit(OpCodes.Ldarg_0);
        custNameSetIL.Emit(OpCodes.Ldarg_1);
        custNameSetIL.Emit(OpCodes.Stfld, customerNameBldr);
        custNameSetIL.Emit(OpCodes.Ret);

        // Last, we must map the two methods created above to our PropertyBuilder to 
        // their corresponding behaviors, "get" and "set" respectively. 
        custNamePropBldr.SetGetMethod(custNameGetPropMthdBldr);
        custNamePropBldr.SetSetMethod(custNameSetPropMthdBldr);


        Type retval = myTypeBuilder.CreateType();

        // Save the assembly so it can be examined with Ildasm.exe,
        // or referenced by a test program.
        myAsmBuilder.Save(myAsmName.Name + ".dll");
        return retval;
   }

   public static void Main() 
   {
        Type custDataType = BuildDynamicTypeWithProperties();

        PropertyInfo[] custDataPropInfo = custDataType.GetProperties();
        foreach (PropertyInfo pInfo in custDataPropInfo) {
           Console.WriteLine("Property '{0}' created!", pInfo.ToString());
        }

        Console.WriteLine("---");
        // Note that when invoking a property, you need to use the proper BindingFlags -
        // BindingFlags.SetProperty when you invoke the "set" behavior, and 
        // BindingFlags.GetProperty when you invoke the "get" behavior. Also note that
        // we invoke them based on the name we gave the property, as expected, and not
        // the name of the methods we bound to the specific property behaviors.

        object custData = Activator.CreateInstance(custDataType);
        custDataType.InvokeMember("CustomerName", BindingFlags.SetProperty,
                                      null, custData, new object[]{ "Joe User" });

        Console.WriteLine("The customerName field of instance custData has been set to '{0}'.",
                           custDataType.InvokeMember("CustomerName", BindingFlags.GetProperty,
                                                      null, custData, new object[]{ }));
   }

}

// --- O U T P U T ---
// The output should be as follows:
// -------------------
// Property 'System.String CustomerName [System.String]' created!
// ---
// The customerName field of instance custData has been set to 'Joe User'.
// -------------------

.NET Framework
Disponível desde 1.1
Silverlight
Disponível desde 2.0

Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Retornar ao início
Mostrar: