FieldInfo Класс

Определение

Обнаруживает атрибуты поля и обеспечивает доступ к его метаданным.Discovers the attributes of a field and provides access to field metadata.

public ref class FieldInfo abstract : System::Reflection::MemberInfo, System::Runtime::InteropServices::_FieldInfo
public abstract class FieldInfo : System.Reflection.MemberInfo, System.Runtime.InteropServices._FieldInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
public abstract class FieldInfo : System.Reflection.MemberInfo, System.Runtime.InteropServices._FieldInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public abstract class FieldInfo : System.Reflection.MemberInfo, System.Runtime.InteropServices._FieldInfo
type FieldInfo = class
    inherit MemberInfo
    interface _FieldInfo
Public MustInherit Class FieldInfo
Inherits MemberInfo
Implements _FieldInfo
Наследование
FieldInfo
Производный
Атрибуты
Реализации

Примеры

В следующем примере используется метод Type.GetFields для получения сведений о полях из класса FieldInfo, а затем отображаются атрибуты полей.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.Reflection

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

Комментарии

Сведения о поле получаются из метаданных.The field information is obtained from metadata. Класс FieldInfo не имеет общего конструктора.The FieldInfo class does not have a public constructor. FieldInfo объекты получаются путем вызова метода GetFields или GetField объекта Type.FieldInfo objects are obtained by calling either the GetFields or GetField method of a Type object.

Поля — это переменные, определенные в классе.Fields are variables defined in the class. FieldInfo предоставляет доступ к метаданным для поля в классе и предоставляет динамические наборы и функции для поля.FieldInfo provides access to the metadata for a field within a class and provides dynamic set and get functionality for the field. Класс не загружается в память до вызова метода Invoke или Get для объекта.The class is not loaded into memory until invoke or get is called on the object.

Примечания для тех, кто реализует этот метод

При наследовании от класса FieldInfo необходимо переопределить следующие члены: GetValue(Object) и SetValue(Object, Object, BindingFlags, Binder, CultureInfo).When you inherit from FieldInfo, you must override the following members: GetValue(Object) and SetValue(Object, Object, BindingFlags, Binder, CultureInfo).

Конструкторы

FieldInfo()

Инициализация нового экземпляра класса FieldInfo.Initializes a new instance of the FieldInfo class.

Свойства

Attributes

Возвращает атрибуты, связанные с этим полем.Gets the attributes associated with this field.

CustomAttributes

Получает коллекцию, содержащую пользовательские атрибуты этого члена.Gets a collection that contains this member's custom attributes.

(Унаследовано от MemberInfo)
DeclaringType

Получает класс, объявляющий этот член.Gets the class that declares this member.

(Унаследовано от MemberInfo)
FieldHandle

Возвращает дескриптор RuntimeFieldHandle, являющийся дескриптором представления внутренних метаданных поля.Gets a RuntimeFieldHandle, which is a handle to the internal metadata representation of a field.

FieldType

Возвращает тип этого объекта поля.Gets the type of this field object.

IsAssembly

Возвращает значение, которое указывает, описана ли доступность данного поля в поле Assembly; другими словами, будет ли это поле полностью доступно для других полей той же сборки и недоступно для производных типов, не включенных в сборку.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.

IsCollectible

Получает значение, указывающее, является ли объект MemberInfo частью сборки, содержащейся в забираемом контексте AssemblyLoadContext.Gets a value that indicates whether this MemberInfo object is part of an assembly held in a collectible AssemblyLoadContext.

(Унаследовано от MemberInfo)
IsFamily

Возвращает значение, которое указывает, описана ли доступность этого поля в поле Family; другими словами, будет ли это поле доступно только в своем классе и производных классах.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

Возвращает значение, которое указывает, описана ли доступность этого поля в поле FamANDAssem; другими словами, будет ли это поле доступно только в производных классах, которые включены в ту же сборку.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

Возвращает значение, которое указывает, описана ли потенциальная доступность этого поля в поле FamORAssem; другими словами, будет ли это поле доступно в производных классах независимо от их местонахождения, а также в классах, которые включены в ту же сборку.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

Возвращает значение, указывающее, установлен ли для этого поля атрибут NotSerialized.Gets a value indicating whether this field has the NotSerialized attribute.

IsPinvokeImpl

Возвращает значение, указывающее, установлен ли в PinvokeImpl соответствующий атрибут FieldAttributes.Gets a value indicating whether the corresponding PinvokeImpl attribute is set in FieldAttributes.

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

Возвращает значение, указывающее, установлен ли в перечислителе SpecialName соответствующий атрибут FieldAttributes.Gets a value indicating whether the corresponding SpecialName attribute is set in the FieldAttributes enumerator.

IsStatic

Возвращает значение, указывающее, является ли поле статическим.Gets a value indicating whether the field is static.

MemberType

Возвращает значение MemberTypes, указывающее, что этот элемент является полем.Gets a MemberTypes value indicating that this member is a field.

MetadataToken

Получает значение, определяющее элемент метаданных.Gets a value that identifies a metadata element.

(Унаследовано от MemberInfo)
Module

Получает модуль, в котором определяется тип, объявляющий член, представленный текущим объектом MemberInfo.Gets the module in which the type that declares the member represented by the current MemberInfo is defined.

(Унаследовано от MemberInfo)
Name

Возвращает имя текущего члена.Gets the name of the current member.

(Унаследовано от MemberInfo)
ReflectedType

Получает объект класса, который использовался для извлечения данного экземпляра объекта MemberInfo.Gets the class object that was used to obtain this instance of MemberInfo.

(Унаследовано от MemberInfo)

Методы

Equals(Object)

Возвращает значение, показывающее, равен ли экземпляр указанному объекту.Returns a value that indicates whether this instance is equal to a specified object.

GetCustomAttributes(Boolean)

При переопределении в производном классе возвращает массив всех настраиваемых атрибутов, примененных к данному члену.When overridden in a derived class, returns an array of all custom attributes applied to this member.

(Унаследовано от MemberInfo)
GetCustomAttributes(Type, Boolean)

При переопределении в производном классе возвращает массив настраиваемых атрибутов, применяемых к этому элементу и определяемых параметром Type.When overridden in a derived class, returns an array of custom attributes applied to this member and identified by Type.

(Унаследовано от MemberInfo)
GetCustomAttributesData()

Возвращает список объектов CustomAttributeData, представляющих данные об атрибутах, примененных к целевому элементу.Returns a list of CustomAttributeData objects representing data about the attributes that have been applied to the target member.

(Унаследовано от MemberInfo)
GetFieldFromHandle(RuntimeFieldHandle)

Возвращает значение FieldInfo для поля, представленного указанным дескриптором.Gets a FieldInfo for the field represented by the specified handle.

GetFieldFromHandle(RuntimeFieldHandle, RuntimeTypeHandle)

Получает объект FieldInfo для представленного указанным дескриптором поля заданного универсального типа.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.

GetType()
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.

HasSameMetadataDefinitionAs(MemberInfo) (Унаследовано от MemberInfo)
IsDefined(Type, Boolean)

При переопределении в производном классе указывает, применяются ли для этого члена один или несколько атрибутов заданного типа или его производных типов.When overridden in a derived class, indicates whether one or more attributes of the specified type or of its derived types is applied to this member.

(Унаследовано от MemberInfo)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от 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.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Операторы

Equality(FieldInfo, FieldInfo)

Определение равенства двух объектов FieldInfo.Indicates whether two FieldInfo objects are equal.

Inequality(FieldInfo, FieldInfo)

Определяет неравенство двух объектов FieldInfo.Indicates whether two FieldInfo objects are not equal.

Явные реализации интерфейса

_FieldInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.Maps a set of names to a corresponding set of dispatch identifiers.

_FieldInfo.GetType()

Возвращает объект Type, представляющий тип FieldInfo.Gets a Type object representing the FieldInfo type.

_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)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).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.

_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.Maps a set of names to a corresponding set of dispatch identifiers.

(Унаследовано от MemberInfo)
_MemberInfo.GetType()

Возвращает объект Type, представляющий класс MemberInfo.Gets a Type object representing the MemberInfo class.

(Унаследовано от 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.

(Унаследовано от MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Унаследовано от MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.Provides access to properties and methods exposed by an object.

(Унаследовано от MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Boolean) (Унаследовано от MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) (Унаследовано от MemberInfo)
ICustomAttributeProvider.IsDefined(Type, Boolean) (Унаследовано от MemberInfo)

Методы расширения

GetCustomAttribute(MemberInfo, Type)

Извлекает пользовательский атрибут заданного типа, примененный к указанному элементу.Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute(MemberInfo, Type, Boolean)

Извлекает настраиваемый атрибут указанного типа, который применяется к указанному элементу и, при необходимости, проверяет предков этого элемента.Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttribute<T>(MemberInfo)

Извлекает пользовательский атрибут заданного типа, примененный к указанному элементу.Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute<T>(MemberInfo, Boolean)

Извлекает настраиваемый атрибут указанного типа, который применяется к указанному элементу и, при необходимости, проверяет предков этого элемента.Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo)

Извлекает коллекцию настраиваемых атрибутов, примененных к указанному члену.Retrieves a collection of custom attributes that are applied to a specified member.

GetCustomAttributes(MemberInfo, Boolean)

Извлекает коллекцию пользовательских атрибутов, которые применяются к указанному элементу и, при необходимости, проверяет предков этого элемента.Retrieves a collection of custom attributes that are applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo, Type)

Извлекает коллекцию пользовательских атрибутов заданного типа, примененных к указанному элементу.Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

GetCustomAttributes(MemberInfo, Type, Boolean)

Извлекает коллекцию пользовательских атрибутов указанного типа, которые применяется к указанному элементу и, при необходимости, проверяет предков этого элемента.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.

GetCustomAttributes<T>(MemberInfo)

Извлекает коллекцию пользовательских атрибутов заданного типа, примененных к указанному элементу.Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

GetCustomAttributes<T>(MemberInfo, Boolean)

Извлекает коллекцию пользовательских атрибутов указанного типа, которые применяется к указанному элементу и, при необходимости, проверяет предков этого элемента.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.

IsDefined(MemberInfo, Type)

Указывает, применены ли какие-либо пользовательские атрибуты заданного типа к указанному члену.Indicates whether custom attributes of a specified type are applied to a specified member.

IsDefined(MemberInfo, Type, Boolean)

Указывает применены ли настраиваемые атрибуты указанного типа к указанному элементу и, при необходимости, применены ли они к его предкам.Indicates whether custom attributes of a specified type are applied to a specified member, and, optionally, applied to its ancestors.

GetMetadataToken(MemberInfo)

Возвращает маркер метаданных для заданного элемента, если он доступен.Gets a metadata token for the given member, if available.

HasMetadataToken(MemberInfo)

Возвращает значение, указывающее, доступен ли маркер метаданных для указанного элемента.Returns a value that indicates whether a metadata token is available for the specified member.

Применяется к

Потокобезопасность

Данный тип потокобезопасен.This type is thread safe.

Дополнительно