FieldBuilder Klas

Definitie

Definieert en vertegenwoordigt een veld. Deze klasse kan niet worden overgenomen.

public ref class FieldBuilder sealed : System::Reflection::FieldInfo, System::Runtime::InteropServices::_FieldBuilder
public ref class FieldBuilder sealed : 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
public sealed class FieldBuilder : System.Reflection.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
type FieldBuilder = class
    inherit FieldInfo
Public NotInheritable Class FieldBuilder
Inherits FieldInfo
Implements _FieldBuilder
Public NotInheritable Class FieldBuilder
Inherits FieldInfo
Overname
FieldBuilder
Kenmerken
Implementeringen

Voorbeelden

In het volgende voorbeeld ziet u het gebruik van de FieldBuilder klasse.

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

Opmerkingen

Haal een exemplaar op van FieldBuilder door aan te roepen DefineField, DefineInitializedDataof DefineUninitializedData.

Note

De SetValue methode wordt momenteel niet ondersteund. Als tijdelijke oplossing haalt u de FieldInfo waarde op door na te denken over het voltooide type en de aanroep SetValue om de waarde van het veld in te stellen.

Eigenschappen

Name Description
Attributes

Geeft de kenmerken van dit veld aan. Deze eigenschap is alleen-lezen.

CustomAttributes

Hiermee haalt u een verzameling op die de aangepaste kenmerken van dit lid bevat.

(Overgenomen van MemberInfo)
DeclaringType

Geeft een verwijzing naar het Type object aan voor het type dat dit veld declareert. Deze eigenschap is alleen-lezen.

FieldHandle

Geeft de interne metagegevensgreep voor dit veld aan. Deze eigenschap is alleen-lezen.

FieldType

Geeft het Type object aan dat het type van dit veld aangeeft. Deze eigenschap is alleen-lezen.

IsAssembly

Hiermee wordt een waarde opgehaald die aangeeft of de mogelijke zichtbaarheid van dit veld wordt beschreven door Assembly; dat wil zeggen dat het veld maximaal zichtbaar is voor andere typen in dezelfde assembly en niet zichtbaar is voor afgeleide typen buiten de assembly.

(Overgenomen van FieldInfo)
IsFamily

Hiermee wordt een waarde opgehaald die aangeeft of de zichtbaarheid van dit veld wordt beschreven door Family; dat wil zeggen dat het veld alleen zichtbaar is binnen de klasse en afgeleide klassen.

(Overgenomen van FieldInfo)
IsFamilyAndAssembly

Hiermee wordt een waarde opgehaald die aangeeft of de zichtbaarheid van dit veld wordt beschreven door FamANDAssem; dat wil zeggen, het veld kan worden geopend vanuit afgeleide klassen, maar alleen als ze zich in dezelfde assembly bevinden.

(Overgenomen van FieldInfo)
IsFamilyOrAssembly

Hiermee wordt een waarde opgehaald die aangeeft of de mogelijke zichtbaarheid van dit veld wordt beschreven door FamORAssem; dat wil zeggen dat het veld kan worden geopend door afgeleide klassen waar ze zich ook bevinden en op klassen in dezelfde assembly.

(Overgenomen van FieldInfo)
IsInitOnly

Hiermee wordt een waarde opgehaald die aangeeft of het veld alleen kan worden ingesteld in de hoofdtekst van de constructor.

(Overgenomen van FieldInfo)
IsLiteral

Hiermee wordt een waarde opgehaald die aangeeft of de waarde tijdens het compileren is geschreven en niet kan worden gewijzigd.

(Overgenomen van FieldInfo)
IsNotSerialized

Hiermee wordt een waarde opgehaald die aangeeft of dit veld het NotSerialized kenmerk heeft.

(Overgenomen van FieldInfo)
IsPinvokeImpl

Hiermee wordt een waarde opgehaald die aangeeft of het bijbehorende PinvokeImpl kenmerk is ingesteld in FieldAttributes.

(Overgenomen van FieldInfo)
IsPrivate

Hiermee wordt een waarde opgehaald die aangeeft of het veld privé is.

(Overgenomen van FieldInfo)
IsPublic

Hiermee wordt een waarde opgehaald die aangeeft of het veld openbaar is.

(Overgenomen van FieldInfo)
IsSecurityCritical

Hiermee wordt een waarde opgehaald die aangeeft of het huidige veld beveiligingskritiek of veilig veilig is op het huidige vertrouwensniveau.

(Overgenomen van FieldInfo)
IsSecuritySafeCritical

Hiermee wordt een waarde opgehaald die aangeeft of het huidige veld beveiligingsveilig is op het huidige vertrouwensniveau.

(Overgenomen van FieldInfo)
IsSecurityTransparent

Hiermee wordt een waarde opgehaald die aangeeft of het huidige veld transparant is op het huidige vertrouwensniveau.

(Overgenomen van FieldInfo)
IsSpecialName

Hiermee wordt een waarde opgehaald die aangeeft of het bijbehorende SpecialName kenmerk is ingesteld in de FieldAttributes enumerator.

(Overgenomen van FieldInfo)
IsStatic

Hiermee wordt een waarde opgehaald die aangeeft of het veld statisch is.

(Overgenomen van FieldInfo)
MemberType

Hiermee wordt een MemberTypes waarde opgehaald die aangeeft dat dit lid een veld is.

(Overgenomen van FieldInfo)
MetadataToken

Hiermee haalt u een waarde op waarmee een metagegevenselement wordt geïdentificeerd.

(Overgenomen van MemberInfo)
Module

Hiermee haalt u de module op waarin het type dat dit veld bevat, wordt gedefinieerd.

Module

Hiermee haalt u de module op waarin het type dat het lid declareert dat wordt vertegenwoordigd door de huidige MemberInfo , is gedefinieerd.

(Overgenomen van MemberInfo)
Name

Geeft de naam van dit veld aan. Deze eigenschap is alleen-lezen.

ReflectedType

Geeft de verwijzing naar het Type object aan waaruit dit object is verkregen. Deze eigenschap is alleen-lezen.

Methoden

Name Description
Equals(Object)

Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van FieldInfo)
GetCustomAttributes(Boolean)

Retourneert alle aangepaste kenmerken die voor dit veld zijn gedefinieerd.

GetCustomAttributes(Type, Boolean)

Retourneert alle aangepaste kenmerken die zijn gedefinieerd voor dit veld dat is geïdentificeerd door het opgegeven type.

GetCustomAttributesData()

Retourneert een lijst CustomAttributeData met objecten die gegevens vertegenwoordigen over de kenmerken die zijn toegepast op het doellid.

(Overgenomen van MemberInfo)
GetHashCode()

Retourneert de hash-code voor dit exemplaar.

(Overgenomen van FieldInfo)
GetOptionalCustomModifiers()

Hiermee haalt u een matrix van typen op die de optionele aangepaste modifiers van het veld identificeren.

(Overgenomen van FieldInfo)
GetRawConstantValue()

Retourneert een letterlijke waarde die is gekoppeld aan het veld door een compiler.

(Overgenomen van FieldInfo)
GetRequiredCustomModifiers()

Hiermee haalt u een matrix van typen op die de vereiste aangepaste modifiers van de eigenschap identificeren.

(Overgenomen van FieldInfo)
GetToken()

Retourneert het token dat dit veld vertegenwoordigt.

GetType()

Detecteert de kenmerken van een klasseveld en biedt toegang tot metagegevens van velden.

(Overgenomen van FieldInfo)
GetValue(Object)

Haalt de waarde op van het veld dat wordt ondersteund door het opgegeven object.

GetValueDirect(TypedReference)

Retourneert de waarde van een veld dat wordt ondersteund door een bepaald object.

(Overgenomen van FieldInfo)
HasSameMetadataDefinitionAs(MemberInfo)

Definieert en vertegenwoordigt een veld. Deze klasse kan niet worden overgenomen.

(Overgenomen van MemberInfo)
IsDefined(Type, Boolean)

Hiermee wordt aangegeven of een kenmerk met het opgegeven type is gedefinieerd voor een veld.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
SetConstant(Object)

Hiermee stelt u de standaardwaarde van dit veld in.

SetCustomAttribute(ConstructorInfo, Byte[])

Hiermee stelt u een aangepast kenmerk in met behulp van een opgegeven aangepaste kenmerk-blob.

SetCustomAttribute(CustomAttributeBuilder)

Hiermee stelt u een aangepast kenmerk in met behulp van een opbouwfunctie voor aangepaste kenmerken.

SetMarshal(UnmanagedMarshal)
Verouderd.

Beschrijft de inheemse marshaling van het veld.

SetOffset(Int32)

Hiermee geeft u de veldindeling op.

SetValue(Object, Object, BindingFlags, Binder, CultureInfo)

Hiermee stelt u de waarde van het veld in dat wordt ondersteund door het opgegeven object.

SetValue(Object, Object)

Hiermee stelt u de waarde van het veld in dat wordt ondersteund door het opgegeven object.

(Overgenomen van FieldInfo)
SetValueDirect(TypedReference, Object)

Hiermee stelt u de waarde van het veld in dat wordt ondersteund door het opgegeven object.

(Overgenomen van FieldInfo)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

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

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

_FieldBuilder.GetTypeInfo(UInt32, UInt32, IntPtr)

Haalt de typegegevens voor een object op, die vervolgens kan worden gebruikt om de typegegevens voor een interface op te halen.

_FieldBuilder.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

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

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

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

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van FieldInfo)
_FieldInfo.GetType()

Hiermee wordt een Type object opgehaald dat het FieldInfo type vertegenwoordigt.

(Overgenomen van FieldInfo)
_FieldInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Haalt de typegegevens voor een object op, die vervolgens kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van FieldInfo)
_FieldInfo.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van FieldInfo)
_FieldInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van FieldInfo)
_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van MemberInfo)
_MemberInfo.GetType()

Hiermee haalt u een Type object op dat de MemberInfo klasse vertegenwoordigt.

(Overgenomen van MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Haalt de typegegevens voor een object op, die vervolgens kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van MemberInfo)

Extensiemethoden

Name Description
GetCustomAttribute(MemberInfo, Type, Boolean)

Haalt een aangepast kenmerk op van een opgegeven type dat wordt toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttribute(MemberInfo, Type)

Hiermee wordt een aangepast kenmerk opgehaald van een opgegeven type dat wordt toegepast op een opgegeven lid.

GetCustomAttribute<T>(MemberInfo, Boolean)

Haalt een aangepast kenmerk op van een opgegeven type dat wordt toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttribute<T>(MemberInfo)

Hiermee wordt een aangepast kenmerk opgehaald van een opgegeven type dat wordt toegepast op een opgegeven lid.

GetCustomAttributes(MemberInfo, Boolean)

Haalt een verzameling aangepaste kenmerken op die worden toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttributes(MemberInfo, Type, Boolean)

Haalt een verzameling aangepaste kenmerken op van een opgegeven type dat wordt toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttributes(MemberInfo, Type)

Hiermee wordt een verzameling aangepaste kenmerken opgehaald van een opgegeven type dat wordt toegepast op een opgegeven lid.

GetCustomAttributes(MemberInfo)

Hiermee haalt u een verzameling aangepaste kenmerken op die worden toegepast op een opgegeven lid.

GetCustomAttributes<T>(MemberInfo, Boolean)

Haalt een verzameling aangepaste kenmerken op van een opgegeven type dat wordt toegepast op een opgegeven lid en inspecteert eventueel de voorouders van dat lid.

GetCustomAttributes<T>(MemberInfo)

Hiermee wordt een verzameling aangepaste kenmerken opgehaald van een opgegeven type dat wordt toegepast op een opgegeven lid.

IsDefined(MemberInfo, Type, Boolean)

Hiermee wordt aangegeven of aangepaste kenmerken van een opgegeven type worden toegepast op een opgegeven lid, en eventueel toegepast op de bovenliggende kenmerken.

IsDefined(MemberInfo, Type)

Hiermee wordt aangegeven of aangepaste kenmerken van een opgegeven type worden toegepast op een opgegeven lid.

Van toepassing op