FieldBuilder Clase
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Define y representa a un campo. Esta clase no puede heredarse.
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
- Herencia
- Atributos
- Implementaciones
En el ejemplo siguiente se muestra el uso de la FieldBuilder
clase .
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
Obtenga una instancia de FieldBuilder
mediante una llamada a DefineField, DefineInitializedDatao DefineUninitializedData.
Nota
El SetValue método no se admite actualmente. Como solución alternativa, recupere mediante la FieldInfo reflexión sobre el tipo terminado y llame SetValue a para establecer el valor del campo.
Field |
Inicializa una nueva instancia de la clase FieldBuilder. |
Attributes |
Indica los atributos de este campo. Esta propiedad es de sólo lectura. |
Custom |
Obtiene una colección que contiene los atributos personalizados de este miembro. (Heredado de MemberInfo) |
Declaring |
Indica una referencia al objeto Type para el tipo que declara este campo. Esta propiedad es de sólo lectura. |
Field |
Indica el identificador interno de metadatos para este campo. Esta propiedad es de sólo lectura. |
Field |
Obtiene una estructura |
Field |
Indica el objeto Type que representa al tipo de este campo. Esta propiedad es de sólo lectura. |
Is |
Obtiene un valor que indica si Assembly describe la visibilidad posible de este campo; es decir, el campo es visible como mucho para otros tipos del mismo ensamblado y no es visible para los tipos derivados fuera del ensamblado. (Heredado de FieldInfo) |
Is |
Obtiene un valor que indica si este objeto MemberInfo forma parte de un ensamblado contenido en un AssemblyLoadContext recopilable. (Heredado de MemberInfo) |
Is |
Obtiene un valor que indica si Family describe la visibilidad de este campo; es decir, el campo sólo es visible dentro de su clase y clases derivadas. (Heredado de FieldInfo) |
Is |
Obtiene un valor que indica si FamANDAssem describe la visibilidad de este campo; es decir, se puede tener acceso al campo desde clases derivadas, pero sólo si están en el mismo ensamblado. (Heredado de FieldInfo) |
Is |
Obtiene un valor que indica si FamORAssem describe la visibilidad posible de este campo; es decir, las clases derivadas pueden tener acceso al campo con independencia de dónde se encuentren, así como las clases del mismo ensamblado. (Heredado de FieldInfo) |
Is |
Obtiene un valor que indica si el campo sólo se puede establecer en el cuerpo del constructor. (Heredado de FieldInfo) |
Is |
Obtiene un valor que indica si el valor se escribe en tiempo de compilación y no puede cambiarse. (Heredado de FieldInfo) |
Is |
Obsoletos.
Obtiene un valor que indica si este campo dispone del atributo |
Is |
Obtiene un valor que indica si el atributo |
Is |
Obtiene un valor que indica si el campo es privado. (Heredado de FieldInfo) |
Is |
Obtiene un valor que indica si el campo es público. (Heredado de FieldInfo) |
Is |
Obtiene un valor que indica si el campo actual es crítico para la seguridad o crítico para la seguridad y disponible desde código transparente en el nivel de confianza actual. (Heredado de FieldInfo) |
Is |
Obtiene un valor que indica si el campo actual es crítico para la seguridad y disponible desde código transparente en el nivel de confianza actual. (Heredado de FieldInfo) |
Is |
Obtiene un valor que indica si el campo actual es transparente en el nivel de confianza actual. (Heredado de FieldInfo) |
Is |
Obtiene un valor que indica si el atributo |
Is |
Obtiene un valor que indica si el campo es estático. (Heredado de FieldInfo) |
Member |
Obtiene un valor de MemberTypes que indica que este miembro es un campo. (Heredado de FieldInfo) |
Metadata |
Obtiene un token que identifica el módulo dinámico actual en los metadatos. |
Metadata |
Obtiene un valor que identifica un elemento de metadatos. (Heredado de MemberInfo) |
Module |
Obtiene el módulo en el que se define el tipo que contiene este campo. |
Module |
Obtiene el módulo en el que el tipo que declara el miembro representado por el objeto MemberInfo actual está definido. (Heredado de MemberInfo) |
Name |
Indica el nombre de este campo. Esta propiedad es de sólo lectura. |
Reflected |
Indica la referencia al objeto Type del que se obtuvo este objeto. Esta propiedad es de sólo lectura. |
Reflected |
Obtiene el objeto de la clase utilizado para obtener esta instancia de |
Equals(Object) |
Devuelve un valor que indica si esta instancia es igual que un objeto especificado. (Heredado de FieldInfo) |
Get |
Devuelve los atributos personalizados definidos para este campo. |
Get |
Cuando se reemplaza en una clase derivada, devuelve una matriz de todos los atributos personalizados aplicados a este miembro. (Heredado de MemberInfo) |
Get |
Devuelve todos los atributos personalizados definidos para este campo identificado por el tipo dado. |
Get |
Cuando se invalida en una clase derivada, devuelve una matriz de atributos personalizados aplicados a este miembro e identificado por Type. (Heredado de MemberInfo) |
Get |
Devuelve una lista de objetos CustomAttributeData que representan datos sobre los atributos que se aplicaron al miembro de destino. (Heredado de MemberInfo) |
Get |
Devuelve el código hash de esta instancia. (Heredado de FieldInfo) |
Get |
Obtiene el tipo modificado de este objeto de campo. (Heredado de FieldInfo) |
Get |
Obtiene una matriz de tipos que identifican los modificadores personalizados opcionales del campo. (Heredado de FieldInfo) |
Get |
Devuelve un valor literal asociado al campo mediante un compilador. (Heredado de FieldInfo) |
Get |
Obtiene una matriz de tipos que identifican los modificadores personalizados necesarios de la propiedad. (Heredado de FieldInfo) |
Get |
Devuelve el símbolo (token) que representa a este campo. |
Get |
Detecta los atributos de un campo de clase y proporciona acceso a sus metadatos. (Heredado de FieldInfo) |
Get |
Recupera el valor del campo compatible con el objeto dado. |
Get |
Devuelve el valor de un campo compatible con un objeto dado. (Heredado de FieldInfo) |
Has |
Define y representa a un campo. Esta clase no puede heredarse. (Heredado de MemberInfo) |
Is |
Indica si un atributo que tenga el tipo especificado, aparece definido en un campo. |
Is |
Cuando se reemplaza en una clase derivada, indica si se aplican a este miembro uno o más atributos del tipo especificado o de sus tipos derivados. (Heredado de MemberInfo) |
Memberwise |
Crea una copia superficial del Object actual. (Heredado de Object) |
Set |
Establece el valor predeterminado de este campo. |
Set |
Cuando se invalida en una clase derivada, establece el valor predeterminado de este campo. |
Set |
Establece un atributo personalizado mediante un blob de atributo personalizado especificado. |
Set |
Establece un atributo personalizado mediante un generador de atributos personalizado. |
Set |
Cuando se reemplaza en una clase derivada, establece un atributo personalizado en este ensamblado. |
Set |
Obsoletos.
Describe el cálculo de referencias nativo del campo. |
Set |
Especifica el diseño del campo. |
Set |
Cuando se reemplaza en una clase derivada, especifica el diseño del campo. |
Set |
Establece el valor del campo admitido por el objeto determinado. (Heredado de FieldInfo) |
Set |
Establece el valor del campo admitido por el objeto determinado. |
Set |
Cuando se reemplaza en una clase derivada, se establece el valor del campo compatible con el objeto dado. (Heredado de FieldInfo) |
Set |
Establece el valor del campo admitido por el objeto determinado. (Heredado de FieldInfo) |
To |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
_Field |
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. |
_Field |
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. |
_Field |
Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). |
_Field |
Proporciona acceso a las propiedades y los métodos expuestos por un objeto. |
_Field |
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Heredado de FieldInfo) |
_Field |
Obtiene un objeto Type que representa el tipo de FieldInfo. (Heredado de FieldInfo) |
_Field |
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 FieldInfo) |
_Field |
Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Heredado de FieldInfo) |
_Field |
Proporciona acceso a las propiedades y los métodos expuestos por un objeto. (Heredado de FieldInfo) |
_Member |
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Heredado de MemberInfo) |
_Member |
Objeto Type que representa la clase MemberInfo. (Heredado de MemberInfo) |
_Member |
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) |
_Member |
Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Heredado de MemberInfo) |
_Member |
Proporciona acceso a las propiedades y los métodos expuestos por un objeto. (Heredado de MemberInfo) |
ICustom |
Devuelve una matriz de todos los atributos personalizados definidos en este miembro, excluidos los atributos con nombre, o una matriz vacía si no hay atributos personalizados. (Heredado de MemberInfo) |
ICustom |
Devuelve una matriz de atributos personalizados definidos en este miembro, identificados por tipo, o una matriz vacía si no hay atributos personalizados de ese tipo. (Heredado de MemberInfo) |
ICustom |
Indica si una o más instancias de |
Get |
Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro concreto. |
Get |
Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro. |
Get |
Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro concreto. |
Get |
Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro. |
Get |
Recupera una colección de atributos personalizados que se aplican a un miembro especificado. |
Get |
Recupera una colección de atributos personalizados que se aplican a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro. |
Get |
Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un miembro concreto. |
Get |
Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro. |
Get |
Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un miembro concreto. |
Get |
Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro. |
Is |
Indica si se deben aplicar atributos personalizados de un tipo especificado a un miembro especificado. |
Is |
Indica si los atributos personalizados de un tipo especificado se aplican a un miembro especificado y, opcionalmente, se aplican a sus antecesores. |
Get |
Obtiene un token de metadatos del miembro determinado, si está disponible. |
Has |
Devuelve un valor que indica si un token de metadatos está disponible para el miembro especificado. |
Produto | Versións |
---|---|
.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 |
Comentarios de .NET
.NET é un proxecto de código aberto. Selecciona unha ligazón para ofrecer comentarios: