FieldBuilder Class
Defines and represents a field. This class cannot be inherited.
Assembly: mscorlib (in mscorlib.dll)
System.Reflection::MemberInfo
System.Reflection::FieldInfo
System.Reflection.Emit::FieldBuilder
| 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(Object^) | 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() | |
![]() | GetValue(Object^) | Retrieves the value of the field supported by the given object.(Overrides FieldInfo::GetValue(Object^).) |
![]() | GetValueDirect(TypedReference) | Returns the value of a field supported by a given object.(Inherited from FieldInfo.) |
![]() | IsDefined(Type^, Boolean) | Indicates whether an attribute having the specified type is defined on a field.(Overrides MemberInfo::IsDefined(Type^, Boolean).) |
![]() | SetConstant(Object^) | Sets the default value of this field. |
![]() | SetCustomAttribute(ConstructorInfo^, array<Byte>^) | Sets a custom attribute using a specified custom attribute blob. |
![]() | SetCustomAttribute(CustomAttributeBuilder^) | Sets a custom attribute using a custom attribute builder. |
![]() | SetMarshal(UnmanagedMarshal^) | Obsolete. Describes the native marshaling of the field. |
![]() | SetOffset(Int32) | 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(TypedReference, Object^) | 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 | |
|---|---|---|
![]() ![]() | _FieldBuilder::GetIDsOfNames(Guid%, IntPtr, UInt32, UInt32, IntPtr) | Maps a set of names to a corresponding set of dispatch identifiers. |
![]() ![]() | _FieldBuilder::GetTypeInfo(UInt32, UInt32, IntPtr) | Retrieves the type information for an object, which can then be used to get the type information for an interface. |
![]() ![]() | _FieldBuilder::GetTypeInfoCount(UInt32%) | 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) | Provides access to properties and methods exposed by an object. |
![]() ![]() | _FieldInfo::GetIDsOfNames(Guid%, IntPtr, UInt32, UInt32, IntPtr) | Maps a set of names to a corresponding set of dispatch identifiers.(Inherited from FieldInfo.) |
![]() ![]() | _FieldInfo::GetType() | |
![]() ![]() | _FieldInfo::GetTypeInfo(UInt32, UInt32, IntPtr) | 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(UInt32%) | Retrieves the number of type information interfaces that an object provides (either 0 or 1).(Inherited from FieldInfo.) |
![]() ![]() | _FieldInfo::Invoke(UInt32, Guid%, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) | Provides access to properties and methods exposed by an object.(Inherited from FieldInfo.) |
![]() ![]() | _MemberInfo::GetIDsOfNames(Guid%, IntPtr, UInt32, UInt32, IntPtr) | 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(UInt32, UInt32, IntPtr) | 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(UInt32%) | Retrieves the number of type information interfaces that an object provides (either 0 or 1).(Inherited from MemberInfo.) |
![]() ![]() | _MemberInfo::Invoke(UInt32, Guid%, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) | Provides access to properties and methods exposed by an object.(Inherited from MemberInfo.) |
| 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>(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(Type^) | Overloaded. Indicates whether custom attributes of a specified type are applied to a specified member.(Defined by CustomAttributeExtensions.) |
Get an instance of FieldBuilder by calling DefineField, DefineInitializedData, or DefineUninitializedData.
The following code sample illustrates the use of FieldBuilder.
using namespace System; using namespace System::Threading; using namespace System::Reflection; using namespace System::Reflection::Emit; Type^ CreateType( AppDomain^ currentDomain ) { // Create an assembly. AssemblyName^ myAssemblyName = gcnew 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 S"MyClass" in the assembly. TypeBuilder^ myTypeBuilder = myModuleBuilder->DefineType( "MyClass", TypeAttributes::Public ); // Define a private String field named S"MyField" in the type. FieldBuilder^ myFieldBuilder = myTypeBuilder->DefineField( "MyField", String::typeid, static_cast<FieldAttributes>(FieldAttributes::Private | FieldAttributes::Static) ); // Create the constructor. array<Type^>^constructorArgs = {String::typeid}; ConstructorBuilder^ constructor = myTypeBuilder->DefineConstructor( MethodAttributes::Public, CallingConventions::Standard, constructorArgs ); ILGenerator^ constructorIL = constructor->GetILGenerator(); constructorIL->Emit( OpCodes::Ldarg_0 ); ConstructorInfo^ superConstructor = Object::typeid->GetConstructor( gcnew array<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, String::typeid, nullptr ); ILGenerator^ methodIL = myMethodBuilder->GetILGenerator(); methodIL->Emit( OpCodes::Ldarg_0 ); methodIL->Emit( OpCodes::Ldfld, myFieldBuilder ); methodIL->Emit( OpCodes::Ret ); Console::WriteLine( "Name : {0}", myFieldBuilder->Name ); Console::WriteLine( "DeclaringType : {0}", myFieldBuilder->DeclaringType ); Console::WriteLine( "Type : {0}", myFieldBuilder->FieldType ); Console::WriteLine( "Token : {0}", myFieldBuilder->GetToken().Token ); return myTypeBuilder->CreateType(); } int main() { try { Type^ myType = CreateType( Thread::GetDomain() ); // Create an instance of the S"HelloWorld" class. array<Object^>^type = {"HelloWorld"}; Object^ helloWorld = Activator::CreateInstance( myType, type ); // Invoke the S"MyMethod" method of the S"MyClass" class. Object^ myObject = myType->InvokeMember( "MyMethod", BindingFlags::InvokeMethod, nullptr, helloWorld, nullptr ); Console::WriteLine( "MyClass::MyMethod returned: \"{0}\"", myObject ); } catch ( Exception^ e ) { Console::WriteLine( "Exception Caught {0}", e->Message ); } }
Available since 1.1
Silverlight
Available since 2.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.




