FieldInfo 类

2013/12/13

发现字段属性并提供对字段元数据的访问权。

Namespace:  System.Reflection
程序集:  mscorlib(位于 mscorlib.dll 中)

public abstract class FieldInfo : MemberInfo

FieldInfo 类型公开以下成员。

  名称说明
公共属性Attributes获取与此字段关联的特性。
公共属性CustomAttributes获取包含此成员的自定义特性的集合。 (从 MemberInfo 继承。)
公共属性DeclaringType获取声明该成员的类。 (从 MemberInfo 继承。)
公共属性FieldHandle获取字段的内部元数据表示形式的句柄。
公共属性FieldType获取此字段对象的类型。
公共属性IsAssembly获取一个值,该值指示此字段的潜在可见性是否由 FieldAttributes.Assembly 描述;也就是说,此字段最多只对同一程序集中的其他类型可见,而对该程序集以外的派生类型不可见。
公共属性IsFamily获取一个值,该值指示此字段的可见性是否由 FieldAttributes.Family 描述;也就是说,此字段仅在其类和派生类内可见。
公共属性IsFamilyAndAssembly获取一个值,该值指示此字段的可见性是否由 FieldAttributes.FamANDAssem 描述;也就是说,可从派生类访问此字段,但仅当这些派生类在同一程序集中时。
公共属性IsFamilyOrAssembly获取一个值,该值指示此字段的潜在可见性是否由 FieldAttributes.FamORAssem 描述;也就是说,可通过派生类(无论其位置如何)和同一程序集中的类访问此字段。
公共属性IsInitOnly获取一个值,该值指示此字段是否只能在构造函数的主体中设置。
公共属性IsLiteral获取一个值,该值指示值是否是在编译时写入的,不能更改。
公共属性IsNotSerialized获取一个值,该值指示此字段是否有 NotSerialized 属性。
公共属性IsPinvokeImpl获取一个值,该值指示是否在 FieldAttributes 中设置了相应的 PinvokeImpl 特性。
公共属性IsPrivate获取一个值,该值指示此字段是否为私有字段。
公共属性IsPublic获取一个值,该值指示此字段是否为公共字段。
公共属性IsSpecialName获取一个值,该值指示此字段是否具有一个有特殊意义的名称。
公共属性IsStatic获取一个值,该值指示此字段是否标记有 static(在 Visual Basic 中为 Shared)。
公共属性MemberType获取一个值,指示此成员是字段。 (重写 MemberInfo.MemberType。)
公共属性MetadataToken获取一个值,该值标识元数据元素。 (从 MemberInfo 继承。)
公共属性Module获取一个模块,在该模块中已经定义一个类型,该类型用于声明由当前 MemberInfo 表示的成员。 (从 MemberInfo 继承。)
公共属性Name获取当前成员的名称。 (从 MemberInfo 继承。)
公共属性ReflectedType获取用于获取 MemberInfo 的此实例的类对象。 (从 MemberInfo 继承。)
返回顶部

  名称说明
公共方法Equals返回一个值,该值指示此实例是否与指定的对象相等。 (重写 MemberInfo.Equals(Object)。)
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法GetCustomAttributes(Boolean)在派生类中重写时,返回应用于此成员的所有自定义特性的数组。 (从 MemberInfo 继承。)
公共方法GetCustomAttributes(Type, Boolean)在派生类中重写时,返回应用于此成员并由 Type 标识的自定义特性的数组。 (从 MemberInfo 继承。)
公共方法静态成员GetFieldFromHandle(RuntimeFieldHandle)获取由指定句柄表示的字段的 FieldInfo
公共方法静态成员GetFieldFromHandle(RuntimeFieldHandle, RuntimeTypeHandle)获取由指定句柄表示的指定泛型类型字段的 FieldInfo
公共方法GetHashCode返回此实例的哈希代码。 (重写 MemberInfo.GetHashCode()。)
公共方法GetRawConstantValue由编译器返回与字段关联的文本值。
公共方法GetType获取当前实例的 Type (从 Object 继承。)
公共方法GetValue在派生类中被重写时,返回给定对象支持的字段的值。
公共方法IsDefined在派生类中重写时,指示是否将指定类型或其派生类型的一个或多个特性应用于此成员。 (从 MemberInfo 继承。)
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法SetValue(Object, Object)设置给定对象支持的字段值。
公共方法SetValue(Object, Object, BindingFlags, Binder, CultureInfo)在派生类中重写时,用对类型转换的指定约束设置字段的值。
公共方法ToString返回一个字符串,它表示当前的对象。 (从 Object 继承。)
返回顶部

  名称说明
公共扩展方法GetCustomAttribute(Type)重载。 检索应用于指定的成员的指定类型的自定义特性。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttribute(Type, Boolean)重载。 检索应用于指定成员的指定类型的自定义特性,还可以选择检查该成员的上级。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttribute<T>()重载。 检索应用于指定的成员的指定类型的自定义特性。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttribute<T>(Boolean)重载。 检索应用于指定成员的指定类型的自定义特性,还可以选择检查该成员的上级。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes()重载。 检索应用于指定成员的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes(Type)重载。 检索应用于指定成员的指定类型的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes<T>()重载。 检索应用于指定成员的指定类型的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes<T>(Boolean)重载。 检索应用于指定成员的指定类型的自定义特性的集合,还可以选择检查该成员的上级。 (由 CustomAttributeExtensions 定义。)
公共扩展方法IsDefined指示是否将指定类型的自定义特性应用于指定的成员。 (由 CustomAttributeExtensions 定义。)
返回顶部

FieldInfo 类没有公共构造函数。通过调用 Type.GetFieldsType.GetField 可获取 FieldInfo 对象。

字段是在类中定义的变量。FieldInfo 提供对类中字段的元数据的访问权并对字段的值启用后期绑定访问。在 Windows Phone 中,无论是何访问级别都可以获取任何字段的元数据,但在获取或设置字段的值时,不能使用 FieldInfo 跳过访问级别保护。

下面的示例使用 Type.GetFields 方法获取 Example 类的字段,然后显示有关字段的信息。

说明注意:

要运行此示例,请参见生成具有静态 Windows Phone TextBlock 控件的示例


using System;
using System.Reflection;

public class Example
{
   public int myField1 = 0;
   protected string myField2 = null;
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      FieldInfo[] myFieldInfo;
      Type myType = typeof(Example);
      // Get the type and fields of Example.
      myFieldInfo = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance
          | BindingFlags.Public);
      outputBlock.Text += "\nThe fields of " +
          "Example are \n" + "\n";
      // Display the field information of Example.
      for (int i = 0; i < myFieldInfo.Length; i++)
      {
         outputBlock.Text += String.Format("\nName            : {0}", myFieldInfo[i].Name) + "\n";
         outputBlock.Text += String.Format("Declaring Type  : {0}", myFieldInfo[i].DeclaringType) + "\n";
         outputBlock.Text += String.Format("IsPublic        : {0}", myFieldInfo[i].IsPublic) + "\n";
         outputBlock.Text += String.Format("MemberType      : {0}", myFieldInfo[i].MemberType) + "\n";
         outputBlock.Text += String.Format("FieldType       : {0}", myFieldInfo[i].FieldType) + "\n";
         outputBlock.Text += String.Format("IsFamily        : {0}", myFieldInfo[i].IsFamily) + "\n";
      }
   }
}


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

此类型是线程安全的。

显示:
© 2014 Microsoft