FieldBuilder Classe
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define e representa um campo. Essa classe não pode ser herdada.
public ref class FieldBuilder sealed : System::Reflection::FieldInfo
public ref class FieldBuilder abstract : System::Reflection::FieldInfo
public ref class FieldBuilder sealed : System::Reflection::FieldInfo, System::Runtime::InteropServices::_FieldBuilder
public sealed class FieldBuilder : System.Reflection.FieldInfo
public abstract class FieldBuilder : System.Reflection.FieldInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class FieldBuilder : System.Reflection.FieldInfo, System.Runtime.InteropServices._FieldBuilder
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FieldBuilder : System.Reflection.FieldInfo, System.Runtime.InteropServices._FieldBuilder
type FieldBuilder = class
inherit FieldInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type FieldBuilder = class
inherit FieldInfo
interface _FieldBuilder
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FieldBuilder = class
inherit FieldInfo
interface _FieldBuilder
Public NotInheritable Class FieldBuilder
Inherits FieldInfo
Public MustInherit Class FieldBuilder
Inherits FieldInfo
Public NotInheritable Class FieldBuilder
Inherits FieldInfo
Implements _FieldBuilder
- Herança
- Atributos
- Implementações
O exemplo a seguir ilustra o uso da FieldBuilder
classe .
using System;
using System.Reflection;
using System.Reflection.Emit;
public class FieldBuilder_Sample
{
private static Type? CreateType()
{
// Create an assembly.
AssemblyName assemName = new AssemblyName();
assemName.Name = "DynamicAssembly";
AssemblyBuilder assemBuilder =
AssemblyBuilder.DefineDynamicAssembly(assemName, AssemblyBuilderAccess.Run);
// Create a dynamic module in Dynamic Assembly.
ModuleBuilder modBuilder = assemBuilder.DefineDynamicModule("DynamicModule");
// Define a public class named "DynamicClass" in the assembly.
TypeBuilder typBuilder = modBuilder.DefineType("DynamicClass", TypeAttributes.Public);
// Define a private String field named "DynamicField" in the type.
FieldBuilder fldBuilder = typBuilder.DefineField("DynamicField",
typeof(string), FieldAttributes.Private | FieldAttributes.Static);
// Create the constructor.
Type[] constructorArgs = { typeof(String) };
ConstructorBuilder constructor = typBuilder.DefineConstructor(
MethodAttributes.Public, CallingConventions.Standard, constructorArgs);
ILGenerator constructorIL = constructor.GetILGenerator();
constructorIL.Emit(OpCodes.Ldarg_0);
ConstructorInfo? superConstructor = typeof(Object).GetConstructor(new Type[0]);
constructorIL.Emit(OpCodes.Call, superConstructor!);
constructorIL.Emit(OpCodes.Ldarg_0);
constructorIL.Emit(OpCodes.Ldarg_1);
constructorIL.Emit(OpCodes.Stfld, fldBuilder);
constructorIL.Emit(OpCodes.Ret);
// Create the DynamicMethod method.
MethodBuilder methBuilder = typBuilder.DefineMethod("DynamicMethod",
MethodAttributes.Public, typeof(String), null);
ILGenerator methodIL = methBuilder.GetILGenerator();
methodIL.Emit(OpCodes.Ldarg_0);
methodIL.Emit(OpCodes.Ldfld, fldBuilder);
methodIL.Emit(OpCodes.Ret);
Console.WriteLine($"Name : {fldBuilder.Name}");
Console.WriteLine($"DeclaringType : {fldBuilder.DeclaringType}");
Console.WriteLine($"Type : {fldBuilder.FieldType}");
return typBuilder.CreateType();
}
public static void Main()
{
Type? dynType = CreateType();
try
{
if (dynType is not null)
{
// Create an instance of the "HelloWorld" class.
Object? helloWorld = Activator.CreateInstance(dynType, new Object[] { "HelloWorld" });
// Invoke the "DynamicMethod" method of the "DynamicClass" class.
Object? obj = dynType.InvokeMember("DynamicMethod",
BindingFlags.InvokeMethod, null, helloWorld, null);
Console.WriteLine($"DynamicClass.DynamicMethod returned: \"{obj}\"");
}
}
catch (MethodAccessException e)
{
Console.WriteLine($"{e.GetType().Name}: {e.Message}");
}
}
}
Imports System.Reflection
Imports System.Reflection.Emit
Public Module FieldBuilder_Sample
Private Function CreateType() As Type
' Create an assembly.
Dim assemName As New AssemblyName()
assemName.Name = "DynamicAssembly"
Dim assemBuilder As AssemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(assemName,
AssemblyBuilderAccess.Run)
' Create a dynamic module in Dynamic Assembly.
Dim modBuilder As ModuleBuilder = assemBuilder.DefineDynamicModule("DynamicModule")
' Define a public class named "DynamicClass" in the assembly.
Dim typBuilder As TypeBuilder = modBuilder.DefineType("DynamicClass",
TypeAttributes.Public)
' Define a private String field named "DynamicField" in the type.
Dim fldBuilder As FieldBuilder = typBuilder.DefineField("DynamicField",
GetType(String), FieldAttributes.Private Or FieldAttributes.Static)
' Create the constructor.
Dim constructorArgs As Type() = {GetType(String)}
Dim constructor As ConstructorBuilder =
typBuilder.DefineConstructor(MethodAttributes.Public,
CallingConventions.Standard, constructorArgs)
Dim constructorIL As ILGenerator = constructor.GetILGenerator()
constructorIL.Emit(OpCodes.Ldarg_0)
Dim superConstructor As ConstructorInfo = GetType(Object).GetConstructor(New Type() {})
constructorIL.Emit(OpCodes.Call, superConstructor)
constructorIL.Emit(OpCodes.Ldarg_0)
constructorIL.Emit(OpCodes.Ldarg_1)
constructorIL.Emit(OpCodes.Stfld, fldBuilder)
constructorIL.Emit(OpCodes.Ret)
' Create the DynamicMethod method.
Dim methBuilder As MethodBuilder = typBuilder.DefineMethod("DynamicMethod",
MethodAttributes.Public, GetType(String), Nothing)
Dim methodIL As ILGenerator = methBuilder.GetILGenerator()
methodIL.Emit(OpCodes.Ldarg_0)
methodIL.Emit(OpCodes.Ldfld, fldBuilder)
methodIL.Emit(OpCodes.Ret)
Console.WriteLine($"Name : {fldBuilder.Name}")
Console.WriteLine($"DeclaringType : {fldBuilder.DeclaringType}")
Console.WriteLine($"Type : {fldBuilder.FieldType}")
Return typBuilder.CreateType()
End Function
Public Sub Main()
Dim dynType As Type = CreateType()
Try
' Create an instance of the "HelloWorld" class.
Dim helloWorld As Object = Activator.CreateInstance(dynType, New Object() {"HelloWorld"})
' Invoke the "DynamicMethod" method of the "DynamicClass" class.
Dim obj As Object = dynType.InvokeMember("DynamicMethod",
BindingFlags.InvokeMethod, Nothing, helloWorld, Nothing)
Console.WriteLine($"DynamicClass.DynamicMethod returned: ""{obj}""")
Catch e As MethodAccessException
Console.WriteLine($"{e.GetType().Name}: {e.Message}")
End Try
End Sub
End Module
Obtenha uma instância de FieldBuilder
chamando DefineField, DefineInitializedDataou DefineUninitializedData.
Nota
No SetValue momento, não há suporte para o método . Como solução alternativa, recupere o FieldInfo refletindo sobre o tipo concluído e chame SetValue para definir o valor do campo.
Field |
Inicializa uma nova instância da classe FieldBuilder. |
Attributes |
Indica os atributos desse campo. Esta propriedade é somente para leitura. |
Custom |
Obtém uma coleção que contém os atributos personalizados desse membro. (Herdado de MemberInfo) |
Declaring |
Indica uma referência para o objeto Type para o tipo que declara esse membro. Esta propriedade é somente para leitura. |
Field |
Indica o identificador de metadados internos para esse campo. Esta propriedade é somente para leitura. |
Field |
Obtém um |
Field |
Indica o objeto Type que representa o tipo desse campo. Esta propriedade é somente para leitura. |
Is |
Obtém um valor que indica se a visibilidade potencial deste campo é ou não descrita por Assembly, ou seja, que o campo está visível no máximo para outros tipos no mesmo assembly, não estando visível para tipos derivados fora do assembly. (Herdado de FieldInfo) |
Is |
Obtém um valor que indica se este objeto MemberInfo faz parte de um assembly mantido em uma coleção AssemblyLoadContext. (Herdado de MemberInfo) |
Is |
Obtém um valor que indica se a visibilidade do campo é ou não descrita por Family, ou seja, que o campo está visível somente dentro de sua classe e das classes derivadas. (Herdado de FieldInfo) |
Is |
Obtém um valor que indica se a visibilidade do campo é ou não descrita por FamANDAssem, ou seja, o campo pode ser acessado de classes derivadas, mas somente se elas estiverem no mesmo assembly. (Herdado de FieldInfo) |
Is |
Obtém um valor que indica se a visibilidade potencial desse campo é ou não descrita por FamORAssem, ou seja, o campo pode ser acessado por classes derivadas independentemente da localização delas, bem como por classes no mesmo assembly. (Herdado de FieldInfo) |
Is |
Obtém um valor que indica se o campo só pode ser definido no corpo do construtor. (Herdado de FieldInfo) |
Is |
Obtém um valor que indica se o valor é gravado no tempo de compilação e não pode ser alterado. (Herdado de FieldInfo) |
Is |
Obsoleto.
Obtém um valor que indica se esse campo tem o atributo |
Is |
Obtém um valor que indica se o atributo |
Is |
Obtém um valor que indica se o campo é ou não privado. (Herdado de FieldInfo) |
Is |
Obtém um valor que indica se o campo é ou não público. (Herdado de FieldInfo) |
Is |
Obtém um valor que indica se o campo atual é crítico para segurança ou crítico para segurança e disponível no código transparente no nível de confiança atual. (Herdado de FieldInfo) |
Is |
Obtém um valor que indica se o campo atual é crítico para segurança e disponível no código transparente no nível de confiança atual. (Herdado de FieldInfo) |
Is |
Obtém um valor que indica se o campo atual é transparente no nível de confiança atual. (Herdado de FieldInfo) |
Is |
Obtém um valor que indica se o atributo |
Is |
Obtém um valor que indica se o campo é ou não estático. (Herdado de FieldInfo) |
Member |
Obtém um valor MemberTypes que indica que esse membro é um campo. (Herdado de FieldInfo) |
Metadata |
Obtém um token que identifica o módulo dinâmico atual nos metadados. |
Metadata |
Obtém um valor que identifica um elemento de metadados. (Herdado de MemberInfo) |
Module |
Obtém o módulo no qual o tipo que contém esse campo está sendo definido. |
Module |
Obtém o módulo no qual o tipo que declara o membro representado pelo MemberInfo atual está definido. (Herdado de MemberInfo) |
Name |
Indica o nome desse campo. Esta propriedade é somente para leitura. |
Reflected |
Indica a referência para o objeto Type do qual esse objeto foi definido. Esta propriedade é somente para leitura. |
Reflected |
Obtém o objeto de classe que foi usado para obter esta instância de |
Equals(Object) |
Retorna um valor que indica se essa instância é igual a um objeto especificado. (Herdado de FieldInfo) |
Get |
Retorna todos os atributos personalizados definidos para esse campo. |
Get |
Quando substituído em uma classe derivada, retorna uma matriz de todos os atributos personalizados aplicados a esse membro. (Herdado de MemberInfo) |
Get |
Retorna todos os atributos personalizados definidos para esse campo identificado pelo tipo fornecido. |
Get |
Quando substituído em uma classe derivada, retorna uma matriz de atributos personalizados aplicados a esse membro e identificados por Type. (Herdado de MemberInfo) |
Get |
Retorna uma lista de objetos CustomAttributeData que representam dados sobre os atributos que foram aplicados ao membro de destino. (Herdado de MemberInfo) |
Get |
Retorna o código hash para a instância. (Herdado de FieldInfo) |
Get |
Obtém o tipo modificado deste objeto de campo. (Herdado de FieldInfo) |
Get |
Obtém uma matriz de tipos que identificam os modificadores personalizados opcionais do campo. (Herdado de FieldInfo) |
Get |
Retorna um valor literal associado ao campo por um compilador. (Herdado de FieldInfo) |
Get |
Obtém uma matriz de tipos que identificam os modificadores personalizados requeridos da propriedade. (Herdado de FieldInfo) |
Get |
Retorna o token que representa esse campo. |
Get |
Descobre os atributos de um campo de classe e fornece acesso aos metadados de campo. (Herdado de FieldInfo) |
Get |
Recupera o valor do campo com suporte no objeto especificado. |
Get |
Retorna o valor de um campo com suporte no objeto especificado. (Herdado de FieldInfo) |
Has |
Define e representa um campo. Essa classe não pode ser herdada. (Herdado de MemberInfo) |
Is |
Indica se um atributo contendo o tipo especificado é definido em um campo. |
Is |
Quando substituído em uma classe derivada, indica se um ou mais atributos do tipo especificado ou de seus tipos derivados são aplicados a esse membro. (Herdado de MemberInfo) |
Memberwise |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
Set |
Define o novo valor padrão desse campo. |
Set |
Quando substituído em uma classe derivada, define o valor padrão desse campo. |
Set |
Define um atributo personalizado usando um blob de atributo personalizado especificado. |
Set |
Define um atributo personalizado usando um construtor de atributos personalizados. |
Set |
Quando substituído em uma classe derivada, define um atributo personalizado neste assembly. |
Set |
Obsoleto.
Descreve o marshaling nativo do campo. |
Set |
Especifica o layout do campo. |
Set |
Quando substituído em uma classe derivada, especifica o layout do campo. |
Set |
Define o valor do campo com suporte no objeto especificado. (Herdado de FieldInfo) |
Set |
Define o valor do campo com suporte no objeto especificado. |
Set |
Quando substituído em uma classe derivada, define o valor do campo com suporte por um determinado objeto. (Herdado de FieldInfo) |
Set |
Define o valor do campo com suporte no objeto especificado. (Herdado de FieldInfo) |
To |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
_Field |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição. |
_Field |
Recupera as informações do tipo de um objeto, que podem ser usadas para obter informações de tipo para uma interface. |
_Field |
Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1). |
_Field |
Fornece acesso a propriedades e métodos expostos por um objeto. |
_Field |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição. (Herdado de FieldInfo) |
_Field |
Obtém um objeto Type que representa o tipo FieldInfo. (Herdado de FieldInfo) |
_Field |
Recupera as informações do tipo de um objeto, que podem ser usadas para obter informações de tipo para uma interface. (Herdado de FieldInfo) |
_Field |
Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1). (Herdado de FieldInfo) |
_Field |
Fornece acesso a propriedades e métodos expostos por um objeto. (Herdado de FieldInfo) |
_Member |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição. (Herdado de MemberInfo) |
_Member |
Obtém um objeto Type que representa a classe MemberInfo. (Herdado de MemberInfo) |
_Member |
Recupera as informações do tipo de um objeto, que podem ser usadas para obter informações de tipo para uma interface. (Herdado de MemberInfo) |
_Member |
Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1). (Herdado de MemberInfo) |
_Member |
Fornece acesso a propriedades e métodos expostos por um objeto. (Herdado de MemberInfo) |
ICustom |
Retorna uma matriz de todos os atributos personalizados definidos neste membro, exceto atributos nomeados ou então uma matriz vazia, se não houver nenhum atributo personalizado. (Herdado de MemberInfo) |
ICustom |
Retorna uma matriz de atributos personalizados definidos neste membro, identificados por tipo ou então uma matriz vazia, se não houver nenhum atributo personalizado desse tipo. (Herdado de MemberInfo) |
ICustom |
Indica se uma ou mais instâncias de |
Get |
Recupera um atributo personalizado de um tipo especificado aplicado a um membro especificado. |
Get |
Recupera um atributo personalizado de um tipo especificado aplicado a um membro especificado e opcionalmente inspeciona os ancestrais desse membro. |
Get |
Recupera um atributo personalizado de um tipo especificado aplicado a um membro especificado. |
Get |
Recupera um atributo personalizado de um tipo especificado aplicado a um membro especificado e opcionalmente inspeciona os ancestrais desse membro. |
Get |
Recupera uma coleção de atributos personalizados que são aplicados a um membro especificado. |
Get |
Recupera uma coleção de atributos personalizados aplicado a um membro especificado e opcionalmente inspeciona os ancestrais desse membro. |
Get |
Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicados a um membro especificado. |
Get |
Recupera uma coleção de atributos personalizados de um tipo especificado aplicado a um membro especificado e opcionalmente inspeciona os ancestrais desse membro. |
Get |
Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicados a um membro especificado. |
Get |
Recupera uma coleção de atributos personalizados de um tipo especificado aplicado a um membro especificado e opcionalmente inspeciona os ancestrais desse membro. |
Is |
Indica se os atributos personalizados de um tipo especificados são aplicados a um membro especificado. |
Is |
Indica se os atributos personalizados de um tipo especificado são aplicados a um membro especificado e, opcionalmente, aplicados a seus ancestrais. |
Get |
Obtém um token de metadados para o membro fornecido, se disponível. |
Has |
Retorna um valor que indica se um token de metadados está disponível para o membro especificado. |
Produto | Versões |
---|---|
.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 | 2.0, 2.1 |
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: