FieldBuilder Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Definuje a představuje pole. Tato třída se nemůže dědit.
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
- Dědičnost
- Atributy
- Implementuje
Příklady
Následující příklad znázorňuje použití FieldBuilder
třídy.
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
Poznámky
Získejte instanci objektu FieldBuilder
voláním DefineField, DefineInitializedDatanebo DefineUninitializedData.
Poznámka
Metoda SetValue se v současné době nepodporuje. Jako alternativní řešení načtěte FieldInfo hodnotu tak, že se odrazíte na dokončeném typu a zavoláním SetValue , abyste nastavili hodnotu pole.
Konstruktory
FieldBuilder() |
Inicializuje novou instanci FieldBuilder třídy. |
Vlastnosti
Attributes |
Označuje atributy tohoto pole. Tato vlastnost je jen ke čtení. |
CustomAttributes |
Získá kolekci, která obsahuje vlastní atributy tohoto člena. (Zděděno od MemberInfo) |
DeclaringType |
Označuje odkaz na Type objekt pro typ, který deklaruje toto pole. Tato vlastnost je jen ke čtení. |
FieldHandle |
Označuje popisovač interních metadat pro toto pole. Tato vlastnost je jen ke čtení. |
FieldHandle |
|
FieldType |
Označuje Type objekt, který představuje typ tohoto pole. Tato vlastnost je jen ke čtení. |
IsAssembly |
Získá hodnotu označující, zda potenciální viditelnost tohoto pole je popsána ; Assemblyto znamená, že pole je viditelné maximálně pro jiné typy ve stejném sestavení a není viditelné pro odvozené typy mimo sestavení. (Zděděno od FieldInfo) |
IsCollectible |
Získá hodnotu, která označuje, zda je tento MemberInfo objekt součástí sestavení uchovávaného v collectible AssemblyLoadContext. (Zděděno od MemberInfo) |
IsFamily |
Získá hodnotu označující, zda viditelnost tohoto pole je popsána ; Familyto znamená, že pole je viditelné pouze v rámci své třídy a odvozené třídy. (Zděděno od FieldInfo) |
IsFamilyAndAssembly |
Získá hodnotu označující, zda viditelnost tohoto pole je popsána ; FamANDAssemto znamená, že pole lze získat přístup z odvozených tříd, ale pouze pokud jsou ve stejném sestavení. (Zděděno od FieldInfo) |
IsFamilyOrAssembly |
Získá hodnotu označující, zda je potenciální viditelnost tohoto pole popsána ; FamORAssemto znamená, že pole může být přístupny odvozenými třídami bez ohledu na to, kde jsou, a podle tříd ve stejném sestavení. (Zděděno od FieldInfo) |
IsInitOnly |
Získá hodnotu označující, zda pole lze nastavit pouze v těle konstruktoru. (Zděděno od FieldInfo) |
IsLiteral |
Získá hodnotu označující, zda je hodnota zapsána v době kompilace a nelze změnit. (Zděděno od FieldInfo) |
IsNotSerialized |
Zastaralé.
Získá hodnotu označující, zda má toto pole |
IsPinvokeImpl |
Získá hodnotu označující, zda odpovídající |
IsPrivate |
Získá hodnotu označující, zda je pole soukromé. (Zděděno od FieldInfo) |
IsPublic |
Získá hodnotu označující, zda je pole veřejné. (Zděděno od FieldInfo) |
IsSecurityCritical |
Získá hodnotu, která označuje, zda je aktuální pole na aktuální úrovni důvěryhodnosti kritickým zabezpečením nebo bezpečné zabezpečení. (Zděděno od FieldInfo) |
IsSecuritySafeCritical |
Získá hodnotu, která označuje, zda aktuální pole je na aktuální úrovni důvěryhodnosti kritický z hlediska zabezpečení. (Zděděno od FieldInfo) |
IsSecurityTransparent |
Získá hodnotu, která označuje, zda aktuální pole je transparentní na aktuální úrovni důvěryhodnosti. (Zděděno od FieldInfo) |
IsSpecialName |
Získá hodnotu označující, zda odpovídající |
IsStatic |
Získá hodnotu označující, zda je pole statické. (Zděděno od FieldInfo) |
MemberType |
MemberTypes Získá hodnotu označující, že tento člen je pole. (Zděděno od FieldInfo) |
MetadataToken |
Získá token, který identifikuje aktuální dynamický modul v metadatech. |
MetadataToken |
Získá hodnotu, která identifikuje metadata element. (Zděděno od MemberInfo) |
Module |
Získá modul, ve kterém je definován typ, který obsahuje toto pole. |
Module |
Získá modul, ve kterém typ, který deklaruje člen reprezentovaný aktuální MemberInfo je definován. (Zděděno od MemberInfo) |
Name |
Označuje název tohoto pole. Tato vlastnost je jen ke čtení. |
ReflectedType |
Označuje odkaz na Type objekt, ze kterého byl tento objekt získán. Tato vlastnost je jen ke čtení. |
ReflectedType |
Získá objekt třídy, který byl použit k získání této instance . |
Metody
Equals(Object) |
Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od FieldInfo) |
GetCustomAttributes(Boolean) |
Vrátí všechny vlastní atributy definované pro toto pole. |
GetCustomAttributes(Boolean) |
Při přepsání v odvozené třídě vrátí pole všech vlastních atributů použitých pro tento člen. (Zděděno od MemberInfo) |
GetCustomAttributes(Type, Boolean) |
Vrátí všechny vlastní atributy definované pro toto pole identifikované daným typem. |
GetCustomAttributes(Type, Boolean) |
Při přepsání v odvozené třídě vrátí pole vlastních atributů použitých na tohoto člena a identifikovaných pomocí Type. (Zděděno od MemberInfo) |
GetCustomAttributesData() |
Vrátí seznam CustomAttributeData objektů představujících data o atributech, které byly použity na cílového člena. (Zděděno od MemberInfo) |
GetHashCode() |
Vrátí hodnotu hash pro tuto instanci. (Zděděno od FieldInfo) |
GetModifiedFieldType() |
Získá změněný typ tohoto pole objektu. (Zděděno od FieldInfo) |
GetOptionalCustomModifiers() |
Získá pole typů, které identifikují volitelné vlastní modifikátory pole. (Zděděno od FieldInfo) |
GetRawConstantValue() |
Vrátí hodnotu literálu přidruženou k poli kompilátorem. (Zděděno od FieldInfo) |
GetRequiredCustomModifiers() |
Získá pole typů, které identifikují požadované vlastní modifikátory vlastnosti. (Zděděno od FieldInfo) |
GetToken() |
Vrátí token představující toto pole. |
GetType() |
Zjistí atributy pole třídy a poskytuje přístup k metadatům pole. (Zděděno od FieldInfo) |
GetValue(Object) |
Načte hodnotu pole podporovaného daným objektem. |
GetValueDirect(TypedReference) |
Vrátí hodnotu pole podporovaného daným objektem. (Zděděno od FieldInfo) |
HasSameMetadataDefinitionAs(MemberInfo) |
Definuje a představuje pole. Tato třída se nemůže dědit. (Zděděno od MemberInfo) |
IsDefined(Type, Boolean) |
Určuje, zda je atribut se zadaným typem definován v poli. |
IsDefined(Type, Boolean) |
Při přepsání v odvozené třídě označuje, zda jeden nebo více atributů zadaného typu nebo jeho odvozených typů je použit na tohoto člena. (Zděděno od MemberInfo) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
SetConstant(Object) |
Nastaví výchozí hodnotu tohoto pole. |
SetConstantCore(Object) |
Při přepsání v odvozené třídě nastaví výchozí hodnotu tohoto pole. |
SetCustomAttribute(ConstructorInfo, Byte[]) |
Nastaví vlastní atribut pomocí zadaného objektu blob vlastního atributu. |
SetCustomAttribute(CustomAttributeBuilder) |
Nastaví vlastní atribut pomocí vlastního tvůrce atributů. |
SetCustomAttributeCore(ConstructorInfo, ReadOnlySpan<Byte>) |
Při přepsání v odvozené třídě nastaví vlastní atribut v tomto sestavení. |
SetMarshal(UnmanagedMarshal) |
Zastaralé.
Popisuje nativní zařazování pole. |
SetOffset(Int32) |
Určuje rozložení pole. |
SetOffsetCore(Int32) |
Při přepsání v odvozené třídě určuje rozložení pole. |
SetValue(Object, Object) |
Nastaví hodnotu pole podporovaného daným objektem. (Zděděno od FieldInfo) |
SetValue(Object, Object, BindingFlags, Binder, CultureInfo) |
Nastaví hodnotu pole podporovaného daným objektem. |
SetValue(Object, Object, BindingFlags, Binder, CultureInfo) |
Při přepsání v odvozené třídě nastaví hodnotu pole podporovaného daným objektem. (Zděděno od FieldInfo) |
SetValueDirect(TypedReference, Object) |
Nastaví hodnotu pole podporovaného daným objektem. (Zděděno od FieldInfo) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (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í. |
_FieldBuilder.GetTypeInfo(UInt32, UInt32, IntPtr) |
Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní. |
_FieldBuilder.GetTypeInfoCount(UInt32) |
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1). |
_FieldBuilder.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Poskytuje přístup k vlastnostem a metodám vystaveným objektem. |
_FieldInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání. (Zděděno od FieldInfo) |
_FieldInfo.GetType() |
Type Získá objekt představující FieldInfo typ. (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í. (Zděděno od FieldInfo) |
_FieldInfo.GetTypeInfoCount(UInt32) |
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 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. (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í. (Zděděno od MemberInfo) |
_MemberInfo.GetType() |
Type Získá objekt představující MemberInfo třídu. (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í. (Zděděno od MemberInfo) |
_MemberInfo.GetTypeInfoCount(UInt32) |
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 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. (Zděděno od MemberInfo) |
ICustomAttributeProvider.GetCustomAttributes(Boolean) |
Vrátí pole všech vlastních atributů definovaných v tomto členu, s výjimkou pojmenovaných atributů, nebo prázdné pole, pokud neexistují žádné vlastní atributy. (Zděděno od MemberInfo) |
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) |
Vrátí pole vlastních atributů definovaných na tomto členu, které jsou identifikovány typem, nebo prázdné pole, pokud neexistují žádné vlastní atributy tohoto typu. (Zděděno od MemberInfo) |
ICustomAttributeProvider.IsDefined(Type, Boolean) |
Určuje, zda je u tohoto člena |
Metody rozšíření
GetCustomAttribute(MemberInfo, Type) |
Načte vlastní atribut zadaného typu, který je použit na zadaného člena. |
GetCustomAttribute(MemberInfo, Type, Boolean) |
Načte vlastní atribut zadaného typu, který je použit na zadaného člena, a volitelně zkontroluje předchůdce tohoto člena. |
GetCustomAttribute<T>(MemberInfo) |
Načte vlastní atribut zadaného typu, který je použit na zadaného člena. |
GetCustomAttribute<T>(MemberInfo, Boolean) |
Načte vlastní atribut zadaného typu, který je použit na zadaného člena, a volitelně zkontroluje předchůdce tohoto člena. |
GetCustomAttributes(MemberInfo) |
Načte kolekci vlastních atributů, které jsou použity na zadaného člena. |
GetCustomAttributes(MemberInfo, Boolean) |
Načte kolekci vlastních atributů, které jsou použity na zadaného člena, a volitelně zkontroluje předky tohoto člena. |
GetCustomAttributes(MemberInfo, Type) |
Načte kolekci vlastních atributů zadaného typu, které jsou použity na zadaného člena. |
GetCustomAttributes(MemberInfo, Type, Boolean) |
Načte kolekci vlastních atributů zadaného typu, které se použijí na zadaného člena, a volitelně zkontroluje předky tohoto člena. |
GetCustomAttributes<T>(MemberInfo) |
Načte kolekci vlastních atributů zadaného typu, které jsou použity na zadaného člena. |
GetCustomAttributes<T>(MemberInfo, Boolean) |
Načte kolekci vlastních atributů zadaného typu, které se použijí na zadaného člena, a volitelně zkontroluje předky tohoto člena. |
IsDefined(MemberInfo, Type) |
Určuje, zda jsou na zadaného člena použity vlastní atributy zadaného typu. |
IsDefined(MemberInfo, Type, Boolean) |
Určuje, zda se vlastní atributy zadaného typu použijí na zadaného člena a volitelně se použijí na jeho předky. |
GetMetadataToken(MemberInfo) |
Získá token metadat pro daného člena, pokud je k dispozici. |
HasMetadataToken(MemberInfo) |
Vrátí hodnotu, která označuje, zda je token metadat k dispozici pro zadaného člena. |