FieldInfo Класс

Определение

Обнаруживает атрибуты поля и обеспечивает доступ к его метаданным.

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

Примеры

В следующем примере метод используется Type.GetFields для получения сведений, связанных с полем FieldInfo , из класса, а затем для отображения атрибутов поля.

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

Комментарии

Сведения о поле получаются из метаданных. У FieldInfo класса нет открытого конструктора. FieldInfo объекты получаются путем вызова GetFields объекта или GetField метода Type .

Поля — это переменные, определенные в классе. FieldInfo предоставляет доступ к метаданным для поля в классе и предоставляет динамический набор и получение функциональных возможностей для поля. Класс не загружается в память, пока не вызывается или не вызывается в объекте.

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

При наследовании от класса FieldInfo необходимо переопределить следующие члены: GetValue(Object) и SetValue(Object, Object, BindingFlags, Binder, CultureInfo).

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

FieldInfo()

Инициализирует новый экземпляр класса FieldInfo.

Свойства

Attributes

Возвращает атрибуты, связанные с этим полем.

CustomAttributes

Получает коллекцию, содержащую пользовательские атрибуты этого члена.

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

Получает класс, объявляющий этот член.

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

Возвращает дескриптор RuntimeFieldHandle, являющийся дескриптором представления внутренних метаданных поля.

FieldType

Возвращает тип этого объекта поля.

IsAssembly

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

IsCollectible

Получает значение, указывающее, является ли объект MemberInfo частью сборки, содержащейся в забираемом контексте AssemblyLoadContext.

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

Возвращает значение, которое указывает, описана ли доступность этого поля в поле Family; другими словами, будет ли это поле доступно только в своем классе и производных классах.

IsFamilyAndAssembly

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

IsFamilyOrAssembly

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

IsInitOnly

Возвращает значение, которое определяет, устанавливается ли поле только в тексте сообщения конструктора.

IsLiteral

Возвращает значение, показывающее, что значение записывается во время компиляции и не может быть изменено.

IsNotSerialized

Возвращает значение, указывающее, установлен ли для этого поля атрибут NotSerialized.

IsPinvokeImpl

Возвращает значение, указывающее, установлен ли в FieldAttributes соответствующий атрибут PinvokeImpl.

IsPrivate

Возвращает значение, указывающее, является ли поле закрытым.

IsPublic

Возвращает значение, указывающее, является ли поле открытым.

IsSecurityCritical

Получает значение, которое указывает, является ли текущее поле критически важным для безопасности или защищенным критически важным для безопасности на данном уровне доверия.

IsSecuritySafeCritical

Получает значение, которое указывает, является ли текущее поле защищенным критически важным для безопасности на данном уровне доверия.

IsSecurityTransparent

Получает значение, которое указывает, является ли текущее поле прозрачным на данном уровне доверия.

IsSpecialName

Возвращает значение, указывающее, установлен ли в перечислителе FieldAttributes соответствующий атрибут SpecialName.

IsStatic

Возвращает значение, указывающее, является ли поле статическим.

MemberType

Возвращает значение MemberTypes, указывающее, что этот элемент является полем.

MemberType

При переопределении в производном классе получает значение MemberTypes, определяющее тип члена: метод, конструктор, событие и так далее.

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

Получает значение, определяющее элемент метаданных.

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

Получает модуль, в котором определяется тип, объявляющий член, представленный текущим объектом MemberInfo.

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

Возвращает имя текущего члена.

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

Получает объект класса, который использовался для извлечения данного экземпляра объекта MemberInfo.

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

Методы

Equals(Object)

Возвращает значение, показывающее, равен ли экземпляр указанному объекту.

Equals(Object)

Возвращает значение, показывающее, равен ли экземпляр указанному объекту.

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

При переопределении в производном классе возвращает массив всех настраиваемых атрибутов, примененных к данному члену.

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

При переопределении в производном классе возвращает массив настраиваемых атрибутов, применяемых к этому элементу и определяемых параметром Type.

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

Возвращает список объектов CustomAttributeData, представляющих данные об атрибутах, примененных к целевому элементу.

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

Возвращает значение FieldInfo для поля, представленного указанным дескриптором.

GetFieldFromHandle(RuntimeFieldHandle, RuntimeTypeHandle)

Получает объект FieldInfo для представленного указанным дескриптором поля заданного универсального типа.

GetHashCode()

Возвращает хэш-код данного экземпляра.

GetHashCode()

Возвращает хэш-код данного экземпляра.

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

Возвращает массив типов, определяющих необязательные настраиваемые модификаторы для поля.

GetRawConstantValue()

Метод возвращает литеральное значение, связанное с этим свойством компилятором.

GetRequiredCustomModifiers()

Возвращает массив типов, определяющих обязательные настраиваемые модификаторы для свойства.

GetType()

Обнаруживает атрибуты поля класса и обеспечивает доступ к его метаданным.

GetType()

Выявляет атрибуты элемента и обеспечивает доступ к его метаданным.

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

При переопределении в производном классе возвращает значение поля, поддерживаемое данным объектом.

GetValueDirect(TypedReference)

Возвращает значение поля, поддерживаемого заданным объектом.

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

При переопределении в производном классе указывает, применяются ли для этого члена один или несколько атрибутов заданного типа или его производных типов.

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

Создает неполную копию текущего объекта Object.

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

Задает значение поля, которое поддерживается указанным объектом.

SetValue(Object, Object, BindingFlags, Binder, CultureInfo)

Если переопределен производным классом, устанавливает значение поля, поддерживаемое данным объектом.

SetValueDirect(TypedReference, Object)

Задает значение поля, которое поддерживается указанным объектом.

ToString()

Возвращает строку, представляющую текущий объект.

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

Операторы

Equality(FieldInfo, FieldInfo)

Определение равенства двух объектов FieldInfo.

Inequality(FieldInfo, FieldInfo)

Определяет неравенство двух объектов FieldInfo.

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

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

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

_FieldInfo.GetType()

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

_FieldInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса.

_FieldInfo.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

_FieldInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.

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

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

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

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

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

Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса.

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

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

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

Предоставляет доступ к открытым свойствам и методам объекта.

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

Возвращает массив всех настраиваемых атрибутов, определенных для этого элемента, за исключением именованных атрибутов, или пустой массив, если атрибуты отсутствуют.

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

Возвращает массив настраиваемых атрибутов, определенных для этого элемента с учетом типа, или пустой массив, если отсутствуют настраиваемые атрибуты определенного типа.

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

Указывает, сколько экземпляров attributeType определено для этого элемента.

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

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

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)

Возвращает значение, указывающее, доступен ли маркер метаданных для указанного элемента.

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

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

Данный тип потокобезопасен.

См. также раздел