Поделиться через


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

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

IsPrivate

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

IsPublic

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

IsSecurityCritical

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

IsSecuritySafeCritical

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

IsSecurityTransparent

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

IsSpecialName

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

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, RuntimeTypeHandle)

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

GetFieldFromHandle(RuntimeFieldHandle)

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

GetHashCode()

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

GetHashCode()

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

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

Возвращает измененный тип объекта поля.

GetOptionalCustomModifiers()

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

GetRawConstantValue()

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

GetRequiredCustomModifiers()

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

GetType()

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

GetType()

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

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

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

GetValueDirect(TypedReference)

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

HasSameMetadataDefinitionAs(MemberInfo)

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

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

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

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

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

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

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

SetValue(Object, Object)

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

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, Boolean)

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

GetCustomAttribute(MemberInfo, Type)

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

GetCustomAttribute<T>(MemberInfo, Boolean)

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

GetCustomAttribute<T>(MemberInfo)

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

GetCustomAttributes(MemberInfo, Boolean)

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

GetCustomAttributes(MemberInfo, Type, Boolean)

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

GetCustomAttributes(MemberInfo, Type)

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

GetCustomAttributes(MemberInfo)

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

GetCustomAttributes<T>(MemberInfo, Boolean)

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

GetCustomAttributes<T>(MemberInfo)

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

IsDefined(MemberInfo, Type, Boolean)

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

IsDefined(MemberInfo, Type)

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

GetMetadataToken(MemberInfo)

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

HasMetadataToken(MemberInfo)

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

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

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

Этот тип является потокобезопасной.

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