FieldBuilder クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
フィールドを定義および表現します。 このクラスは継承できません。
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
- 継承
- 属性
- 実装
例
次の例は、 クラスの使用方法を FieldBuilder
示しています。
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
注釈
、、または を呼び出DefineInitializedDataDefineFieldして のFieldBuilder
インスタンスを取得しますDefineUninitializedData。
コンストラクター
FieldBuilder() |
FieldBuilder クラスの新しいインスタンスを初期化します。 |
プロパティ
Attributes |
このフィールドの属性を示します。 このプロパティは読み取り専用です。 |
CustomAttributes |
このメンバーのカスタム属性を含むコレクションを取得します。 (継承元 MemberInfo) |
DeclaringType |
このフィールドを宣言する型の Type オブジェクトへの参照を示します。 このプロパティは読み取り専用です。 |
FieldHandle |
このフィールドの内部メタデータ ハンドルを示します。 このプロパティは読み取り専用です。 |
FieldHandle |
フィールドの内部メタデータ形式を識別するハンドルである |
FieldType |
このフィールドの型を表す Type オブジェクトを示します。 このプロパティは読み取り専用です。 |
IsAssembly |
このフィールドを参照可能な範囲が Assembly によって示されるかどうかを表す値を取得します。ここで判定されるのは、フィールドは同じアセンブリ内の他の型でのみ参照できる可能性があり、アセンブリ外部の派生型では参照できないということです。 (継承元 FieldInfo) |
IsCollectible |
この MemberInfo オブジェクトが、収集可能な AssemblyLoadContext に保持されているアセンブリの一部であるかどうかを示す値を取得します。 (継承元 MemberInfo) |
IsFamily |
このフィールドへの参照範囲が Family によって示されるかどうかを表す値を取得します。ここで判定されるのは、フィールドはそのフィールドのクラスと派生クラスの内側でのみ参照できるということです。 (継承元 FieldInfo) |
IsFamilyAndAssembly |
フィールドへの参照範囲が FamANDAssem によって示されるかどうかを表す値を取得します。ここで判定されるのは、フィールドは派生クラスからアクセスできるが、それらのフィールドが同じアセンブリ内にある場合に限るものであることです。 (継承元 FieldInfo) |
IsFamilyOrAssembly |
このフィールドへの参照範囲が FamORAssem によって示されるかどうかを表す値を取得します。ここで判定されるのは、フィールドは任意の場所にある派生クラスと、同じアセンブリ内のクラスでアクセスできることです。 (継承元 FieldInfo) |
IsInitOnly |
フィールドをコンストラクターの本体だけでしか設定できないのかどうかを示す値を取得します。 (継承元 FieldInfo) |
IsLiteral |
値がコンパイル時に書き込まれ、変更できないかどうかを示す値を取得します。 (継承元 FieldInfo) |
IsNotSerialized |
古い.
このフィールドに、 |
IsPinvokeImpl |
対応する |
IsPrivate |
フィールドがプライベートかどうかを示す値を取得します。 (継承元 FieldInfo) |
IsPublic |
フィールドがパブリックかどうかを示す値を取得します。 (継承元 FieldInfo) |
IsSecurityCritical |
現在のフィールドが、現在の信頼レベルでセキュリティ クリティカルまたはセキュリティ セーフ クリティカルであるかどうかを示す値を取得します。 (継承元 FieldInfo) |
IsSecuritySafeCritical |
現在のフィールドが、現在の信頼レベルでセキュリティ セーフ クリティカルであるかどうかを示す値を取得します。 (継承元 FieldInfo) |
IsSecurityTransparent |
現在のフィールドが、現在の信頼レベルで透過的であるかどうかを示す値を取得します。 (継承元 FieldInfo) |
IsSpecialName |
対応する |
IsStatic |
フィールドが静的かどうかを示す値を取得します。 (継承元 FieldInfo) |
MemberType |
このメンバーがフィールドであることを示す MemberTypes 値を取得します。 (継承元 FieldInfo) |
MetadataToken |
メタデータ内の現在の動的モジュールを識別するトークンを取得します。 |
MetadataToken |
メタデータ要素を識別する値を取得します。 (継承元 MemberInfo) |
Module |
このフィールドを含む型が定義されるモジュールを取得します。 |
Module |
現在の MemberInfo によって表されるメンバーを宣言する型が定義されているモジュールを取得します。 (継承元 MemberInfo) |
Name |
このフィールドの名前を示します。 このプロパティは読み取り専用です。 |
ReflectedType |
このオブジェクトの取得元である Type オブジェクトへの参照を示します。 このプロパティは読み取り専用です。 |
ReflectedType |
|
メソッド
Equals(Object) |
このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。 (継承元 FieldInfo) |
GetCustomAttributes(Boolean) |
このフィールドに対して定義されているすべてのカスタム属性を返します。 |
GetCustomAttributes(Boolean) |
派生クラスでオーバーライドされた場合、このメンバーに適用されているすべてのカスタム属性の配列を返します。 (継承元 MemberInfo) |
GetCustomAttributes(Type, Boolean) |
指定された型によって識別されるこのフィールドに定義されたすべてのカスタム属性を返します。 |
GetCustomAttributes(Type, Boolean) |
派生クラスでオーバーライドされた場合は、このメンバーに適用され、Type によって識別されるカスタム属性の配列を返します。 (継承元 MemberInfo) |
GetCustomAttributesData() |
ターゲット メンバーに適用されている属性に関するデータを表す CustomAttributeData オブジェクトのリストを返します。 (継承元 MemberInfo) |
GetHashCode() |
このインスタンスのハッシュ コードを返します。 (継承元 FieldInfo) |
GetModifiedFieldType() |
このフィールド オブジェクトの変更された型を取得します。 (継承元 FieldInfo) |
GetOptionalCustomModifiers() |
フィールドの省略可能なカスタム修飾子を識別する型の配列を取得します。 (継承元 FieldInfo) |
GetRawConstantValue() |
コンパイラによってフィールドに関連付けられているリテラル値を返します。 (継承元 FieldInfo) |
GetRequiredCustomModifiers() |
プロパティの必須のカスタム修飾子を識別する型の配列を取得します。 (継承元 FieldInfo) |
GetToken() |
このフィールドを表すトークンを返します。 |
GetType() |
クラス フィールドの属性を取得し、フィールドのメタデータにアクセスできるようにします。 (継承元 FieldInfo) |
GetValue(Object) |
指定したオブジェクトでサポートされているフィールドの値を取得します。 |
GetValueDirect(TypedReference) |
指定したオブジェクトでサポートされているフィールドの値を返します。 (継承元 FieldInfo) |
HasSameMetadataDefinitionAs(MemberInfo) |
フィールドを定義および表現します。 このクラスは継承できません。 (継承元 MemberInfo) |
IsDefined(Type, Boolean) |
指定した型の属性がフィールドで定義されているかどうかを示します。 |
IsDefined(Type, Boolean) |
派生クラスでオーバーライドされた場合、このメンバーに、指定された型の属性またはその派生型の属性が 1 つ以上適用されているかどうかを示します。 (継承元 MemberInfo) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
SetConstant(Object) |
このフィールドの既定値を設定します。 |
SetConstantCore(Object) |
派生クラスでオーバーライドされた場合は、このフィールドの既定値を設定します。 |
SetCustomAttribute(ConstructorInfo, Byte[]) |
指定されたカスタム属性の blob を使用して、カスタム属性を設定します。 |
SetCustomAttribute(CustomAttributeBuilder) |
カスタム属性ビルダーを使用して、カスタム属性を設定します。 |
SetCustomAttributeCore(ConstructorInfo, ReadOnlySpan<Byte>) |
派生クラスでオーバーライドされた場合は、このアセンブリにカスタム属性を設定します。 |
SetMarshal(UnmanagedMarshal) |
古い.
フィールドのネイティブ マーシャリングを記述します。 |
SetOffset(Int32) |
フィールド レイアウトを指定します。 |
SetOffsetCore(Int32) |
派生クラスでオーバーライドされた場合は、フィールド レイアウトを指定します。 |
SetValue(Object, Object) |
指定したオブジェクトでサポートされているフィールドの値を設定します。 (継承元 FieldInfo) |
SetValue(Object, Object, BindingFlags, Binder, CultureInfo) |
指定したオブジェクトでサポートされているフィールドの値を設定します。 |
SetValue(Object, Object, BindingFlags, Binder, CultureInfo) |
派生クラスでオーバーライドされた場合に、指定したオブジェクトでサポートされているフィールドの値を設定します。 (継承元 FieldInfo) |
SetValueDirect(TypedReference, Object) |
指定したオブジェクトでサポートされているフィールドの値を設定します。 (継承元 FieldInfo) |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
明示的なインターフェイスの実装
拡張メソッド
GetCustomAttribute(MemberInfo, Type) |
指定したメンバーに適用される指定した型のカスタム属性を取得します。 |
GetCustomAttribute(MemberInfo, Type, Boolean) |
指定したメンバーに適用される指定した型のカスタム属性を取得し、オプションでそのメンバーの先祖を調べます。 |
GetCustomAttribute<T>(MemberInfo) |
指定したメンバーに適用される指定した型のカスタム属性を取得します。 |
GetCustomAttribute<T>(MemberInfo, Boolean) |
指定したメンバーに適用される指定した型のカスタム属性を取得し、オプションでそのメンバーの先祖を調べます。 |
GetCustomAttributes(MemberInfo) |
指定されたメンバーに適用されるカスタム属性のコレクションを取得します。 |
GetCustomAttributes(MemberInfo, Boolean) |
指定されたメンバーに適用されるカスタム属性のコレクションを取得し、オプションでそのメンバーの先祖を調べます。 |
GetCustomAttributes(MemberInfo, Type) |
指定されたメンバーに適用される指定された型のカスタム属性のコレクションを取得します。 |
GetCustomAttributes(MemberInfo, Type, Boolean) |
指定されたメンバーに適用されている指定された型のカスタム属性のコレクションを取得し、オプションでそのメンバーの先祖を調べます。 |
GetCustomAttributes<T>(MemberInfo) |
指定されたメンバーに適用される指定された型のカスタム属性のコレクションを取得します。 |
GetCustomAttributes<T>(MemberInfo, Boolean) |
指定されたメンバーに適用されている指定された型のカスタム属性のコレクションを取得し、オプションでそのメンバーの先祖を調べます。 |
IsDefined(MemberInfo, Type) |
指定された型のカスタム属性が指定されたメンバーに適用されているかどうかを示します。 |
IsDefined(MemberInfo, Type, Boolean) |
指定された型のカスタム属性が指定されたメンバーに適用され、オプションで先祖に適用されているかどうかを示します。 |
GetMetadataToken(MemberInfo) |
指定されたメンバーのメタデータ トークンを取得します (存在する場合)。 |
HasMetadataToken(MemberInfo) |
指定されたメンバーに対してメタデータ トークンを使用できるかどうかを示す値を返します。 |
適用対象
.NET