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
- Наследование
- Производный
- Атрибуты
- Реализации
Примеры
В следующем примере используется метод 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() |
Инициализирует новый экземпляр класса |
Свойства
Attributes |
Возвращает атрибуты, связанные с этим полем. |
CustomAttributes |
Возвращает коллекцию, содержащую настраиваемые атрибуты этого члена. (Унаследовано от MemberInfo) |
DeclaringType |
Возвращает класс, объявляющий этот член. (Унаследовано от MemberInfo) |
FieldHandle |
Возвращает |
FieldType |
Возвращает тип объекта поля. |
IsAssembly |
Возвращает значение, указывающее, описывается ли потенциальное видимость этого поля Assembly; То есть поле отображается не более других типов в той же сборке и не отображается производным типам за пределами сборки. |
IsCollectible |
Возвращает значение, указывающее, является ли этот объект MemberInfo частью сборки, удерживаемой в сборочном AssemblyLoadContext. (Унаследовано от MemberInfo) |
IsFamily |
Возвращает значение, указывающее, описывается ли видимость этого поля Family; То есть поле отображается только в его классе и производных классах. |
IsFamilyAndAssembly |
Возвращает значение, указывающее, описывается ли видимость этого поля FamANDAssem; То есть поле можно получить из производных классов, но только в том случае, если они находятся в одной сборке. |
IsFamilyOrAssembly |
Возвращает значение, указывающее, описывается ли потенциальное видимость этого поля FamORAssem; То есть поле может получить доступ к производным классам, где бы они ни находились, и классами в одной сборке. |
IsInitOnly |
Возвращает значение, указывающее, можно ли задать поле только в тексте конструктора. |
IsLiteral |
Возвращает значение, указывающее, записывается ли значение во время компиляции и не может быть изменено. |
IsNotSerialized |
Устаревшие..
Возвращает значение, указывающее, имеет ли это поле атрибут |
IsPinvokeImpl |
Возвращает значение, указывающее, задан ли соответствующий атрибут |
IsPrivate |
Возвращает значение, указывающее, является ли поле частным. |
IsPublic |
Возвращает значение, указывающее, является ли поле общедоступным. |
IsSecurityCritical |
Возвращает значение, указывающее, является ли текущее поле критически важным или безопасным для безопасности на текущем уровне доверия. |
IsSecuritySafeCritical |
Возвращает значение, указывающее, является ли текущее поле безопасным для безопасности критически важным для текущего уровня доверия. |
IsSecurityTransparent |
Возвращает значение, указывающее, является ли текущее поле прозрачным на текущем уровне доверия. |
IsSpecialName |
Возвращает значение, указывающее, задан ли соответствующий атрибут |
IsStatic |
Возвращает значение, указывающее, является ли поле статическим. |
MemberType |
Возвращает значение MemberTypes, указывающее, что этот элемент является полем. |
MemberType |
При переопределении в производном классе получает значение MemberTypes, указывающее тип члена — метод, конструктор, событие и т. д. (Унаследовано от MemberInfo) |
MetadataToken |
Возвращает значение, определяющее элемент метаданных. (Унаследовано от MemberInfo) |
Module |
Возвращает модуль, в котором определен тип, объявляющий элемент, представленный текущим MemberInfo. (Унаследовано от MemberInfo) |
Name |
Возвращает имя текущего элемента. (Унаследовано от MemberInfo) |
ReflectedType |
Возвращает объект класса, который использовался для получения этого экземпляра |
Методы
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() | |
_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) |
Указывает, определен ли один или несколько экземпляров |
Методы расширения
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) |
Возвращает значение, указывающее, доступен ли маркер метаданных для указанного элемента. |
Применяется к
Потокобезопасность
Этот тип является потокобезопасной.