FieldBuilder Class
Defines and represents a field. This class cannot be inherited.
System.Reflection.MemberInfo
System.Reflection.FieldInfo
System.Reflection.Emit.FieldBuilder
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
The FieldBuilder type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | Attributes | Indicates the attributes of this field. This property is read-only. (Overrides FieldInfo.Attributes.) |
![]() | CustomAttributes | Gets a collection that contains this member's custom attributes. (Inherited from MemberInfo.) |
![]() | DeclaringType | Indicates a reference to the Type object for the type that declares this field. This property is read-only. (Overrides MemberInfo.DeclaringType.) |
![]() | FieldHandle | Indicates the internal metadata handle for this field. This property is read-only. (Overrides FieldInfo.FieldHandle.) |
![]() | FieldType | Indicates the Type object that represents the type of this field. This property is read-only. (Overrides FieldInfo.FieldType.) |
![]() | IsAssembly | Gets a value indicating whether the potential visibility of this field is described by FieldAttributes.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. (Inherited from FieldInfo.) |
![]() | IsFamily | Gets a value indicating whether the visibility of this field is described by FieldAttributes.Family; that is, the field is visible only within its class and derived classes. (Inherited from FieldInfo.) |
![]() | IsFamilyAndAssembly | Gets a value indicating whether the visibility of this field is described by FieldAttributes.FamANDAssem; that is, the field can be accessed from derived classes, but only if they are in the same assembly. (Inherited from FieldInfo.) |
![]() | IsFamilyOrAssembly | Gets a value indicating whether the potential visibility of this field is described by FieldAttributes.FamORAssem; that is, the field can be accessed by derived classes wherever they are, and by classes in the same assembly. (Inherited from FieldInfo.) |
![]() | IsInitOnly | Gets a value indicating whether the field can only be set in the body of the constructor. (Inherited from FieldInfo.) |
![]() | IsLiteral | Gets a value indicating whether the value is written at compile time and cannot be changed. (Inherited from FieldInfo.) |
![]() | IsNotSerialized | Gets a value indicating whether this field has the NotSerialized attribute. (Inherited from FieldInfo.) |
![]() | IsPinvokeImpl | Gets a value indicating whether the corresponding PinvokeImpl attribute is set in FieldAttributes. (Inherited from FieldInfo.) |
![]() | IsPrivate | Gets a value indicating whether the field is private. (Inherited from FieldInfo.) |
![]() | IsPublic | Gets a value indicating whether the field is public. (Inherited from FieldInfo.) |
![]() | IsSecurityCritical | Gets a value that indicates whether the current field is security-critical or security-safe-critical at the current trust level. (Inherited from FieldInfo.) |
![]() | IsSecuritySafeCritical | Gets a value that indicates whether the current field is security-safe-critical at the current trust level. (Inherited from FieldInfo.) |
![]() | IsSecurityTransparent | Gets a value that indicates whether the current field is transparent at the current trust level. (Inherited from FieldInfo.) |
![]() | IsSpecialName | Gets a value indicating whether the corresponding SpecialName attribute is set in the FieldAttributes enumerator. (Inherited from FieldInfo.) |
![]() | IsStatic | Gets a value indicating whether the field is static. (Inherited from FieldInfo.) |
![]() | MemberType | Gets a MemberTypes value indicating that this member is a field. (Inherited from FieldInfo.) |
![]() | MetadataToken | Gets a value that identifies a metadata element. (Inherited from MemberInfo.) |
![]() | Module | Gets the module in which the type that contains this field is being defined. (Overrides MemberInfo.Module.) |
![]() | Name | Indicates the name of this field. This property is read-only. (Overrides MemberInfo.Name.) |
![]() | ReflectedType | Indicates the reference to the Type object from which this object was obtained. This property is read-only. (Overrides MemberInfo.ReflectedType.) |
| Name | Description | |
|---|---|---|
![]() | Equals | Returns a value that indicates whether this instance is equal to a specified object. (Inherited from FieldInfo.) |
![]() | GetCustomAttributes(Boolean) | Returns all the custom attributes defined for this field. (Overrides MemberInfo.GetCustomAttributes(Boolean).) |
![]() | GetCustomAttributes(Type, Boolean) | Returns all the custom attributes defined for this field identified by the given type. (Overrides MemberInfo.GetCustomAttributes(Type, Boolean).) |
![]() | GetCustomAttributesData | Returns a list of CustomAttributeData objects representing data about the attributes that have been applied to the target member. (Inherited from MemberInfo.) |
![]() | GetHashCode | Returns the hash code for this instance. (Inherited from FieldInfo.) |
![]() | GetOptionalCustomModifiers | Gets an array of types that identify the optional custom modifiers of the field. (Inherited from FieldInfo.) |
![]() | GetRawConstantValue | Returns a literal value associated with the field by a compiler. (Inherited from FieldInfo.) |
![]() | GetRequiredCustomModifiers | Gets an array of types that identify the required custom modifiers of the property. (Inherited from FieldInfo.) |
![]() | GetToken | Returns the token representing this field. |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | GetValue | Retrieves the value of the field supported by the given object. (Overrides FieldInfo.GetValue(Object).) |
![]() | GetValueDirect | Returns the value of a field supported by a given object. (Inherited from FieldInfo.) |
![]() | IsDefined | Indicates whether an attribute having the specified type is defined on a field. (Overrides MemberInfo.IsDefined(Type, Boolean).) |
![]() | SetConstant | Sets the default value of this field. |
![]() | SetCustomAttribute(CustomAttributeBuilder) | Sets a custom attribute using a custom attribute builder. |
![]() | SetCustomAttribute(ConstructorInfo, Byte[]) | Sets a custom attribute using a specified custom attribute blob. |
![]() | SetMarshal | Obsolete. Describes the native marshaling of the field. |
![]() | SetOffset | Specifies the field layout. |
![]() | SetValue(Object, Object) | Sets the value of the field supported by the given object. (Inherited from FieldInfo.) |
![]() | SetValue(Object, Object, BindingFlags, Binder, CultureInfo) | Sets the value of the field supported by the given object. (Overrides FieldInfo.SetValue(Object, Object, BindingFlags, Binder, CultureInfo).) |
![]() | SetValueDirect | Sets the value of the field supported by the given object. (Inherited from FieldInfo.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() | GetCustomAttribute(Type) | Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified member. (Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttribute(Type, Boolean) | Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member. (Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttribute<T>() | Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified member. (Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttribute<T>(Boolean) | Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member. (Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttributes() | Overloaded. Retrieves a collection of custom attributes that are applied to a specified member. (Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttributes(Type) | Overloaded. Retrieves a collection of custom attributes of a specified type that are applied to a specified member. (Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttributes<T>() | Overloaded. Retrieves a collection of custom attributes of a specified type that are applied to a specified member. (Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttributes<T>(Boolean) | Overloaded. 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. (Defined by CustomAttributeExtensions.) |
![]() | IsDefined | Indicates whether custom attributes of a specified type are applied to a specified member. (Defined by CustomAttributeExtensions.) |
| Name | Description | |
|---|---|---|
![]() ![]() | _FieldBuilder.GetIDsOfNames | Maps a set of names to a corresponding set of dispatch identifiers. |
![]() ![]() | _FieldBuilder.GetTypeInfo | Retrieves the type information for an object, which can then be used to get the type information for an interface. |
![]() ![]() | _FieldBuilder.GetTypeInfoCount | Retrieves the number of type information interfaces that an object provides (either 0 or 1). |
![]() ![]() | _FieldBuilder.Invoke | Provides access to properties and methods exposed by an object. |
![]() ![]() | _FieldInfo.GetIDsOfNames | Maps a set of names to a corresponding set of dispatch identifiers. (Inherited from FieldInfo.) |
![]() ![]() | _FieldInfo.GetType | Gets a Type object representing the FieldInfo type. (Inherited from FieldInfo.) |
![]() ![]() | _FieldInfo.GetTypeInfo | Retrieves the type information for an object, which can then be used to get the type information for an interface. (Inherited from FieldInfo.) |
![]() ![]() | _FieldInfo.GetTypeInfoCount | Retrieves the number of type information interfaces that an object provides (either 0 or 1). (Inherited from FieldInfo.) |
![]() ![]() | _FieldInfo.Invoke | Provides access to properties and methods exposed by an object. (Inherited from FieldInfo.) |
![]() ![]() | _MemberInfo.GetIDsOfNames | Maps a set of names to a corresponding set of dispatch identifiers. (Inherited from MemberInfo.) |
![]() ![]() | _MemberInfo.GetType | Gets a Type object representing the MemberInfo class. (Inherited from MemberInfo.) |
![]() ![]() | _MemberInfo.GetTypeInfo | Retrieves the type information for an object, which can then be used to get the type information for an interface. (Inherited from MemberInfo.) |
![]() ![]() | _MemberInfo.GetTypeInfoCount | Retrieves the number of type information interfaces that an object provides (either 0 or 1). (Inherited from MemberInfo.) |
![]() ![]() | _MemberInfo.Invoke | Provides access to properties and methods exposed by an object. (Inherited from MemberInfo.) |
Get an instance of FieldBuilder by calling DefineField, DefineInitializedData, or DefineUninitializedData.
Note |
|---|
The SetValue method is currently not supported. As a workaround, retrieve the FieldInfo by reflecting on the finished type and call SetValue to set the value of the field. |
Note |
|---|
The HostProtectionAttribute attribute applied to this type or member has the following Resources property value: MayLeakOnAbort. The HostProtectionAttribute does not affect desktop applications (which are typically started by double-clicking an icon, typing a command, or entering a URL in a browser). For more information, see the HostProtectionAttribute class or SQL Server Programming and Host Protection Attributes. |
The following code sample illustrates the use of FieldBuilder.
using System; using System.Threading; using System.Reflection; using System.Reflection.Emit; using System.Security.Permissions; public class FieldBuilder_Sample { private static Type CreateType(AppDomain currentDomain) { // Create an assembly. AssemblyName myAssemblyName = new AssemblyName(); myAssemblyName.Name = "DynamicAssembly"; AssemblyBuilder myAssembly = currentDomain.DefineDynamicAssembly(myAssemblyName,AssemblyBuilderAccess.Run); // Create a dynamic module in Dynamic Assembly. ModuleBuilder myModuleBuilder=myAssembly.DefineDynamicModule("MyModule"); // Define a public class named "MyClass" in the assembly. TypeBuilder myTypeBuilder= myModuleBuilder.DefineType("MyClass",TypeAttributes.Public); // Define a private String field named "MyField" in the type. FieldBuilder myFieldBuilder= myTypeBuilder.DefineField("MyField", typeof(string),FieldAttributes.Private|FieldAttributes.Static); // Create the constructor. Type[] constructorArgs = { typeof(String) }; ConstructorBuilder constructor = myTypeBuilder.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, myFieldBuilder); constructorIL.Emit(OpCodes.Ret); // Create the MyMethod method. MethodBuilder myMethodBuilder= myTypeBuilder.DefineMethod("MyMethod", MethodAttributes.Public,typeof(String),null); ILGenerator methodIL = myMethodBuilder.GetILGenerator(); methodIL.Emit(OpCodes.Ldarg_0); methodIL.Emit(OpCodes.Ldfld, myFieldBuilder); methodIL.Emit(OpCodes.Ret); Console.WriteLine("Name :"+myFieldBuilder.Name); Console.WriteLine("DeclaringType :"+myFieldBuilder.DeclaringType); Console.WriteLine("Type :"+myFieldBuilder.FieldType); Console.WriteLine("Token :"+myFieldBuilder.GetToken().Token); return myTypeBuilder.CreateType(); } [PermissionSetAttribute(SecurityAction.Demand, Name="FullTrust")] public static void Main() { try { Type myType = CreateType(Thread.GetDomain()); // Create an instance of the "HelloWorld" class. Object helloWorld = Activator.CreateInstance(myType, new Object[] { "HelloWorld" }); // Invoke the "MyMethod" method of the "MyClass" class. Object myObject = myType.InvokeMember("MyMethod", BindingFlags.InvokeMethod, null, helloWorld, null); Console.WriteLine("MyClass.MyMethod returned: \"" + myObject + "\""); } catch( Exception e) { Console.WriteLine("Exception Caught "+e.Message); } } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
