FieldInfo 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
发现字段的属性并提供对字段元数据的访问权限。
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 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该字段描述;也就是说,该字段最多对同一程序集中的其他类型的可见,并且对程序集外部的派生类型不可见。 |
| IsFamily |
获取一个值,该值指示此字段的可见性是否由 Family该字段描述;也就是说,该字段仅在其类和派生类中可见。 |
| IsFamilyAndAssembly |
获取一个值,该值指示此字段的可见性是否由 FamANDAssem;也就是说,可以从派生类访问该字段,但前提是这些字段位于同一程序集中。 |
| IsFamilyOrAssembly |
获取一个值,该值指示此字段的潜在可见性是否由 FamORAssem;也就是说,无论这些字段位于何处,都可以由派生类访问,也可以由同一程序集中的类访问。 |
| IsInitOnly |
获取一个值,该值指示字段是否只能在构造函数正文中设置。 |
| IsLiteral |
获取一个值,该值指示该值是否在编译时写入,并且无法更改。 |
| IsNotSerialized |
获取一个值,该值指示此字段是否具有 |
| IsPinvokeImpl |
获取一个值,该值指示是否设置 |
| IsPrivate |
获取一个值,该值指示字段是否为私有字段。 |
| IsPublic |
获取一个值,该值指示字段是否为公共字段。 |
| IsSecurityCritical |
获取一个值,该值指示当前字段在当前信任级别是安全关键还是安全安全关键。 |
| IsSecuritySafeCritical |
获取一个值,该值指示当前字段在当前信任级别是否为安全安全关键。 |
| IsSecurityTransparent |
获取一个值,该值指示当前字段在当前信任级别是否透明。 |
| IsSpecialName |
获取一个值,该值指示是否在枚举器中 |
| IsStatic |
获取一个值,该值指示字段是否为静态字段。 |
| MemberType |
获取一个 MemberTypes 值,该值指示此成员是字段。 |
| MetadataToken |
获取标识元数据元素的值。 (继承自 MemberInfo) |
| Module |
获取在其中定义声明由当前 MemberInfo 表示的成员的类型的模块。 (继承自 MemberInfo) |
| Name |
获取当前成员的名称。 (继承自 MemberInfo) |
| ReflectedType |
获取用于获取此实例的 |
方法
运营商
| 名称 | 说明 |
|---|---|
| Equality(FieldInfo, FieldInfo) |
指示两个 FieldInfo 对象是否相等。 |
| Inequality(FieldInfo, FieldInfo) |
指示两个 FieldInfo 对象是否不相等。 |
显式接口实现
扩展方法
| 名称 | 说明 |
|---|---|
| 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) |
指示指定类型的自定义属性是否应用于指定成员。 |
适用于
线程安全性
此类型是线程安全的。