FieldInfo
Class
Definition
Discovers the attributes of a field and provides access to field metadata.
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class FieldInfo : System.Reflection.MemberInfo, System.Runtime.InteropServices._FieldInfo
- Inheritance
- Derived
- Attributes
- Implements
Inherited Members
System.Object
System.Reflection.MemberInfo
Examples
The following example uses the Type.GetFields method to get the field-related information from the FieldInfo class, and then displays field attributes.
using namespace System;
using namespace System::Reflection;
public ref class FieldInfoClass
{
public:
int myField1;
protected:
String^ myField2;
};
int main()
{
array<FieldInfo^>^myFieldInfo;
Type^ myType = FieldInfoClass::typeid;
// Get the type and fields of FieldInfoClass.
myFieldInfo = myType->GetFields( static_cast<BindingFlags>(BindingFlags::NonPublic | BindingFlags::Instance | BindingFlags::Public) );
Console::WriteLine( "\nThe fields of FieldInfoClass are \n" );
// Display the field information of FieldInfoClass.
for ( int i = 0; i < myFieldInfo->Length; i++ )
{
Console::WriteLine( "\nName : {0}", myFieldInfo[ i ]->Name );
Console::WriteLine( "Declaring Type : {0}", myFieldInfo[ i ]->DeclaringType );
Console::WriteLine( "IsPublic : {0}", myFieldInfo[ i ]->IsPublic );
Console::WriteLine( "MemberType : {0}", myFieldInfo[ i ]->MemberType );
Console::WriteLine( "FieldType : {0}", myFieldInfo[ i ]->FieldType );
Console::WriteLine( "IsFamily : {0}", myFieldInfo[ i ]->IsFamily );
}
}
using System;
using System.Reflection;
public class FieldInfoClass
{
public int myField1 = 0;
protected string myField2 = null;
public static void Main()
{
FieldInfo[] myFieldInfo;
Type myType = typeof(FieldInfoClass);
// Get the type and fields of FieldInfoClass.
myFieldInfo = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance
| BindingFlags.Public);
Console.WriteLine("\nThe fields of " +
"FieldInfoClass are \n");
// Display the field information of FieldInfoClass.
for(int i = 0; i < myFieldInfo.Length; i++)
{
Console.WriteLine("\nName : {0}", myFieldInfo[i].Name);
Console.WriteLine("Declaring Type : {0}", myFieldInfo[i].DeclaringType);
Console.WriteLine("IsPublic : {0}", myFieldInfo[i].IsPublic);
Console.WriteLine("MemberType : {0}", myFieldInfo[i].MemberType);
Console.WriteLine("FieldType : {0}", myFieldInfo[i].FieldType);
Console.WriteLine("IsFamily : {0}", myFieldInfo[i].IsFamily);
}
}
}
Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic
Public Class FieldInfoClass
Public myField1 As Integer = 0
Protected myField2 As String = Nothing
Public Shared Sub Main()
Dim myFieldInfo() As FieldInfo
Dim myType As Type = GetType(FieldInfoClass)
' Get the type and fields of FieldInfoClass.
myFieldInfo = myType.GetFields(BindingFlags.NonPublic Or _
BindingFlags.Instance Or BindingFlags.Public)
Console.WriteLine(ControlChars.NewLine & "The fields of " & _
"FieldInfoClass class are " & ControlChars.NewLine)
' Display the field information of FieldInfoClass.
Dim i As Integer
For i = 0 To myFieldInfo.Length - 1
Console.WriteLine(ControlChars.NewLine + "Name : {0}", myFieldInfo(i).Name)
Console.WriteLine("Declaring Type : {0}", myFieldInfo(i).DeclaringType)
Console.WriteLine("IsPublic : {0}", myFieldInfo(i).IsPublic)
Console.WriteLine("MemberType : {0}", myFieldInfo(i).MemberType)
Console.WriteLine("FieldType : {0}", myFieldInfo(i).FieldType)
Console.WriteLine("IsFamily : {0}", myFieldInfo(i).IsFamily)
Next i
End Sub
End Class
Remarks
The field information is obtained from metadata. The FieldInfo class does not have a public constructor. FieldInfo objects are obtained by calling either the GetFields or GetField method of a Type object.
Fields are variables defined in the class. FieldInfo provides access to the metadata for a field within a class and provides dynamic set and get functionality for the field. The class is not loaded into memory until invoke or get is called on the object.
Constructors
| FieldInfo() |
Initializes a new instance of the |
Properties
| Attributes |
Gets the attributes associated with this field. |
| FieldHandle |
Gets a |
| FieldType |
Gets the type of this field object. |
| IsAssembly |
Gets a value indicating whether the potential visibility of this field is described by 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. |
| IsFamily |
Gets a value indicating whether the visibility of this field is described by Family; that is, the field is visible only within its class and derived classes. |
| IsFamilyAndAssembly |
Gets a value indicating whether the visibility of this field is described by FamANDAssem; that is, the field can be accessed from derived classes, but only if they are in the same assembly. |
| IsFamilyOrAssembly |
Gets a value indicating whether the potential visibility of this field is described by FamORAssem; that is, the field can be accessed by derived classes wherever they are, and by classes in the same assembly. |
| IsInitOnly |
Gets a value indicating whether the field can only be set in the body of the constructor. |
| IsLiteral |
Gets a value indicating whether the value is written at compile time and cannot be changed. |
| IsNotSerialized |
Gets a value indicating whether this field has the |
| IsPinvokeImpl |
Gets a value indicating whether the corresponding |
| IsPrivate |
Gets a value indicating whether the field is private. |
| IsPublic |
Gets a value indicating whether the field is public. |
| IsSecurityCritical |
Gets a value that indicates whether the current field is security-critical or security-safe-critical at the current trust level. |
| IsSecuritySafeCritical |
Gets a value that indicates whether the current field is security-safe-critical at the current trust level. |
| IsSecurityTransparent |
Gets a value that indicates whether the current field is transparent at the current trust level. |
| IsSpecialName |
Gets a value indicating whether the corresponding |
| IsStatic |
Gets a value indicating whether the field is static. |
| MemberType |
Gets a MemberTypes value indicating that this member is a field. |
Methods
| Equals(Object) |
Returns a value that indicates whether this instance is equal to a specified object. |
| GetFieldFromHandle(RuntimeFieldHandle) |
Gets a FieldInfo for the field represented by the specified handle. |
| GetFieldFromHandle(RuntimeFieldHandle, RuntimeTypeHandle) |
Gets a FieldInfo for the field represented by the specified handle, for the specified generic type. |
| GetHashCode() |
Returns the hash code for this instance. |
| GetOptionalCustomModifiers() |
Gets an array of types that identify the optional custom modifiers of the field. |
| GetRawConstantValue() |
Returns a literal value associated with the field by a compiler. |
| GetRequiredCustomModifiers() |
Gets an array of types that identify the required custom modifiers of the property. |
| GetValue(Object) |
When overridden in a derived class, returns the value of a field supported by a given object. |
| GetValueDirect(TypedReference) |
Returns the value of a field supported by a given object. |
| SetValue(Object, Object) |
Sets the value of the field supported by the given object. |
| SetValue(Object, Object, BindingFlags, Binder, CultureInfo) |
When overridden in a derived class, sets the value of the field supported by the given object. |
| SetValueDirect(TypedReference, Object) |
Sets the value of the field supported by the given object. |
Operators
| Equality(FieldInfo, FieldInfo) |
Indicates whether two FieldInfo objects are equal. |
| Inequality(FieldInfo, FieldInfo) |
Indicates whether two FieldInfo objects are not equal. |
Explicit Interface Implementations
| _FieldInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Maps a set of names to a corresponding set of dispatch identifiers. |
| _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. |
| _FieldInfo.GetTypeInfoCount(UInt32) |
Retrieves the number of type information interfaces that an object provides (either 0 or 1). |
| _FieldInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Provides access to properties and methods exposed by an object. |
Extension Methods
Thread Safety
This type is thread safe.