FieldBuilder Třída

Definice

Definuje a představuje pole.Defines and represents a field. Tuto třídu nelze zdědit.This class cannot be inherited.

public ref class FieldBuilder sealed : 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
    interface _FieldBuilder
Public NotInheritable Class FieldBuilder
Inherits FieldInfo
Implements _FieldBuilder
Dědičnost
FieldBuilder
Atributy
Implementuje

Příklady

Následující příklad ilustruje použití třídy FieldBuilder.The following example illustrates the use of the FieldBuilder class.

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
      {
         // 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

Poznámky

Získání instance FieldBuilder voláním DefineField, DefineInitializedDatanebo DefineUninitializedData.Get an instance of FieldBuilder by calling DefineField, DefineInitializedData, or DefineUninitializedData.

Poznámka

Metoda SetValue aktuálně není podporována.The SetValue method is currently not supported. Jako alternativní řešení načtěte FieldInfo, a to tak, že odrážejí typ dokončeno a zavoláte SetValue a nastavíte hodnotu pole.As a workaround, retrieve the FieldInfo by reflecting on the finished type and call SetValue to set the value of the field.

Vlastnosti

Attributes

Určuje atributy tohoto pole.Indicates the attributes of this field. Tato vlastnost je pouze pro čtení.This property is read-only.

CustomAttributes

Získá kolekci, která obsahuje vlastní atributy tohoto člena.Gets a collection that contains this member's custom attributes.

(Zděděno od MemberInfo)
DeclaringType

Označuje odkaz na objekt Type pro typ, který deklaruje toto pole.Indicates a reference to the Type object for the type that declares this field. Tato vlastnost je pouze pro čtení.This property is read-only.

FieldHandle

Určuje vnitřní popisovač metadat pro toto pole.Indicates the internal metadata handle for this field. Tato vlastnost je pouze pro čtení.This property is read-only.

FieldType

Určuje objekt Type, který představuje typ tohoto pole.Indicates the Type object that represents the type of this field. Tato vlastnost je pouze pro čtení.This property is read-only.

IsAssembly

Získá hodnotu, která označuje, zda je potenciální viditelnost tohoto pole popsána Assembly; to znamená, že pole je viditelné nejvýše s jinými typy ve stejném sestavení a není viditelné pro odvozené typy mimo sestavení.Gets a value indicating whether the potential visibility of this field is described by Assembly; that is, the field is visible at most to other types in the same assembly, and is not visible to derived types outside the assembly.

(Zděděno od FieldInfo)
IsCollectible

Získá hodnotu, která označuje, zda MemberInfo je tento objekt součástí sestavení uloženého ve kolekční. AssemblyLoadContextGets a value that indicates whether this MemberInfo object is part of an assembly held in a collectible AssemblyLoadContext.

(Zděděno od MemberInfo)
IsFamily

Získá hodnotu, která označuje, zda je toto pole popsáno Family. to znamená, že pole je viditelné pouze v rámci své třídy a odvozených tříd.Gets a value indicating whether the visibility of this field is described by Family; that is, the field is visible only within its class and derived classes.

(Zděděno od FieldInfo)
IsFamilyAndAssembly

Získá hodnotu, která označuje, zda je toto pole popsáno FamANDAssem. to znamená, že pole lze získat z odvozených tříd, ale pouze v případě, že jsou ve stejném sestavení.Gets a value indicating whether the visibility of this field is described by FamANDAssem; that is, the field can be accessed from derived classes, but only if they are in the same assembly.

(Zděděno od FieldInfo)
IsFamilyOrAssembly

Získá hodnotu, která označuje, zda je možné viditelnost tohoto pole popsat FamORAssem; to znamená, že k poli lze získat pøístup z odvozených tříd bez ohledu na to, kde jsou, a třídy ve stejném sestavení.Gets a value indicating whether the potential visibility of this field is described by FamORAssem; that is, the field can be accessed by derived classes wherever they are, and by classes in the same assembly.

(Zděděno od FieldInfo)
IsInitOnly

Získá hodnotu, která označuje, zda může být pole nastaveno pouze v těle konstruktoru.Gets a value indicating whether the field can only be set in the body of the constructor.

(Zděděno od FieldInfo)
IsLiteral

Získá hodnotu, která označuje, zda je hodnota zapsána v době kompilace a nelze ji změnit.Gets a value indicating whether the value is written at compile time and cannot be changed.

(Zděděno od FieldInfo)
IsNotSerialized

Získá hodnotu, která označuje, zda má NotSerialized toto pole atribut.Gets a value indicating whether this field has the NotSerialized attribute.

(Zděděno od FieldInfo)
IsPinvokeImpl

Načte hodnotu, která označuje, jestli PinvokeImpl je odpovídající atribut nastavený FieldAttributesv.Gets a value indicating whether the corresponding PinvokeImpl attribute is set in FieldAttributes.

(Zděděno od FieldInfo)
IsPrivate

Načte hodnotu, která označuje, zda je pole soukromé.Gets a value indicating whether the field is private.

(Zděděno od FieldInfo)
IsPublic

Načte hodnotu, která označuje, zda je pole veřejné.Gets a value indicating whether the field is public.

(Zděděno od FieldInfo)
IsSecurityCritical

Získá hodnotu, která označuje, zda je aktuální pole v aktuální úrovni vztahu důvěryhodnosti kritické pro zabezpečení nebo bezpečné – kritické.Gets a value that indicates whether the current field is security-critical or security-safe-critical at the current trust level.

(Zděděno od FieldInfo)
IsSecuritySafeCritical

Získá hodnotu, která označuje, zda je aktuální pole bezpečné – kritické na aktuální úrovni vztahu důvěryhodnosti.Gets a value that indicates whether the current field is security-safe-critical at the current trust level.

(Zděděno od FieldInfo)
IsSecurityTransparent

Získá hodnotu, která označuje, zda je aktuální pole transparentní na aktuální úrovni vztahu důvěryhodnosti.Gets a value that indicates whether the current field is transparent at the current trust level.

(Zděděno od FieldInfo)
IsSpecialName

Získá hodnotu, která označuje, zda SpecialName je FieldAttributes v enumerátoru nastaven odpovídající atribut.Gets a value indicating whether the corresponding SpecialName attribute is set in the FieldAttributes enumerator.

(Zděděno od FieldInfo)
IsStatic

Načte hodnotu, která označuje, zda je pole statické.Gets a value indicating whether the field is static.

(Zděděno od FieldInfo)
MemberType

MemberTypes Načte hodnotu, která označuje, že tento člen je pole.Gets a MemberTypes value indicating that this member is a field.

(Zděděno od FieldInfo)
MetadataToken

Získá hodnotu, která identifikuje element metadat.Gets a value that identifies a metadata element.

(Zděděno od MemberInfo)
Module

Získá modul, ve kterém je definován typ, který obsahuje toto pole.Gets the module in which the type that contains this field is being defined.

Name

Určuje název tohoto pole.Indicates the name of this field. Tato vlastnost je pouze pro čtení.This property is read-only.

ReflectedType

Určuje odkaz na objekt Type, ze kterého byl tento objekt získán.Indicates the reference to the Type object from which this object was obtained. Tato vlastnost je pouze pro čtení.This property is read-only.

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.Returns a value that indicates whether this instance is equal to a specified object.

(Zděděno od FieldInfo)
GetCustomAttributes(Boolean)

Vrátí všechny vlastní atributy definované pro toto pole.Returns all the custom attributes defined for this field.

GetCustomAttributes(Type, Boolean)

Vrátí všechny vlastní atributy definované pro toto pole identifikované daným typem.Returns all the custom attributes defined for this field identified by the given type.

GetCustomAttributesData()

Vrátí seznam CustomAttributeData objektů reprezentujících data o atributech, které byly aplikovány na cílového člena.Returns a list of CustomAttributeData objects representing data about the attributes that have been applied to the target member.

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

Vrátí kód hash této instance.Returns the hash code for this instance.

(Zděděno od FieldInfo)
GetOptionalCustomModifiers()

Získá pole typů, které identifikují volitelné vlastní modifikátory pole.Gets an array of types that identify the optional custom modifiers of the field.

(Zděděno od FieldInfo)
GetRawConstantValue()

Vrátí hodnotu literálu přidruženou k poli kompilátorem.Returns a literal value associated with the field by a compiler.

(Zděděno od FieldInfo)
GetRequiredCustomModifiers()

Získá pole typů, které identifikují požadované vlastní modifikátory vlastnosti.Gets an array of types that identify the required custom modifiers of the property.

(Zděděno od FieldInfo)
GetToken()

Vrátí token, který představuje toto pole.Returns the token representing this field.

GetType() (Zděděno od FieldInfo)
GetValue(Object)

Načte hodnotu pole podporované daným objektem.Retrieves the value of the field supported by the given object.

GetValueDirect(TypedReference)

Vrátí hodnotu pole podporované daným objektem.Returns the value of a field supported by a given object.

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

Označuje, zda je atribut se zadaným typem definován v poli.Indicates whether an attribute having the specified type is defined on a field.

MemberwiseClone()

Vytvoří kopii aktuálního Objectseznamu.Creates a shallow copy of the current Object.

(Zděděno od Object)
SetConstant(Object)

Nastaví výchozí hodnotu tohoto pole.Sets the default value of this field.

SetCustomAttribute(ConstructorInfo, Byte[])

Nastaví vlastní atribut pomocí zadaného objektu BLOB vlastního atributu.Sets a custom attribute using a specified custom attribute blob.

SetCustomAttribute(CustomAttributeBuilder)

Nastaví vlastní atribut pomocí vlastního tvůrce atributů.Sets a custom attribute using a custom attribute builder.

SetMarshal(UnmanagedMarshal)

Popisuje nativní zařazování pole.Describes the native marshaling of the field.

SetOffset(Int32)

Určuje rozložení pole.Specifies the field layout.

SetValue(Object, Object)

Nastaví hodnotu pole podporované daným objektem.Sets the value of the field supported by the given object.

(Zděděno od FieldInfo)
SetValue(Object, Object, BindingFlags, Binder, CultureInfo)

Nastaví hodnotu pole podporované daným objektem.Sets the value of the field supported by the given object.

SetValueDirect(TypedReference, Object)

Nastaví hodnotu pole podporované daným objektem.Sets the value of the field supported by the given object.

(Zděděno od FieldInfo)
ToString()

Vrací řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Explicitní implementace rozhraní

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

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.Maps a set of names to a corresponding set of dispatch identifiers.

_FieldBuilder.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní.Retrieves the type information for an object, which can then be used to get the type information for an interface.

_FieldBuilder.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

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

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.Provides access to properties and methods exposed by an object.

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

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.Maps a set of names to a corresponding set of dispatch identifiers.

(Zděděno od FieldInfo)
_FieldInfo.GetType()

Type Získá objektFieldInfo představující typ.Gets a Type object representing the FieldInfo type.

(Zděděno od FieldInfo)
_FieldInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní.Retrieves the type information for an object, which can then be used to get the type information for an interface.

(Zděděno od FieldInfo)
_FieldInfo.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Zděděno od FieldInfo)
_FieldInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.Provides access to properties and methods exposed by an object.

(Zděděno od FieldInfo)
_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.Maps a set of names to a corresponding set of dispatch identifiers.

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

Type Získá objektMemberInfo reprezentující třídu.Gets a Type object representing the MemberInfo class.

(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í.Retrieves the type information for an object, which can then be used to get the type information for an interface.

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

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).Retrieves the number of type information interfaces that an object provides (either 0 or 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.Provides access to properties and methods exposed by an object.

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

Metody rozšíření

GetCustomAttribute(MemberInfo, Type)

Načte vlastní atribut zadaného typu, který se použije pro zadaného člena.Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute(MemberInfo, Type, Boolean)

Načte vlastní atribut zadaného typu, který se použije na zadaného člena, a volitelně zkontroluje nadřazené členy daného člena.Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttribute<T>(MemberInfo)

Načte vlastní atribut zadaného typu, který se použije pro zadaného člena.Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute<T>(MemberInfo, Boolean)

Načte vlastní atribut zadaného typu, který se použije na zadaného člena, a volitelně zkontroluje nadřazené členy daného člena.Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo)

Načte kolekci vlastních atributů, které se aplikují na zadaného člena.Retrieves a collection of custom attributes that are applied to a specified member.

GetCustomAttributes(MemberInfo, Boolean)

Načte kolekci vlastních atributů, které se aplikují na zadaného člena, a volitelně zkontroluje nadřazené členy daného člena.Retrieves a collection of custom attributes that are applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo, Type)

Načte kolekci vlastních atributů zadaného typu, které jsou aplikovány na zadaného člena.Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

GetCustomAttributes(MemberInfo, Type, Boolean)

Načte kolekci vlastních atributů zadaného typu, které jsou aplikovány na zadaného člena, a volitelně zkontroluje nadřazené členy daného člena.Retrieves a collection of custom attributes of a specified type that are applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes<T>(MemberInfo)

Načte kolekci vlastních atributů zadaného typu, které jsou aplikovány na zadaného člena.Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

GetCustomAttributes<T>(MemberInfo, Boolean)

Načte kolekci vlastních atributů zadaného typu, které jsou aplikovány na zadaného člena, a volitelně zkontroluje nadřazené členy daného člena.Retrieves a collection of custom attributes of a specified type that are applied to a specified member, and optionally inspects the ancestors of that member.

IsDefined(MemberInfo, Type)

Určuje, zda jsou pro zadaného člena aplikovány vlastní atributy zadaného typu.Indicates whether custom attributes of a specified type are applied to a specified member.

IsDefined(MemberInfo, Type, Boolean)

Označuje, zda jsou vlastní atributy zadaného typu aplikovány na zadaného člena a volitelně také aplikován na jeho nadřazené prvky.Indicates whether custom attributes of a specified type are applied to a specified member, and, optionally, applied to its ancestors.

GetMetadataToken(MemberInfo)

Získá token metadat pro daného člena, je-li k dispozici.Gets a metadata token for the given member, if available.

HasMetadataToken(MemberInfo)

Vrátí hodnotu, která označuje, zda je pro zadaného člena k dispozici token metadat.Returns a value that indicates whether a metadata token is available for the specified member.

Platí pro