FieldInfo.Attributes Property

July 28, 2014

Gets the attributes that are associated with this field.

Namespace:  System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

public abstract FieldAttributes Attributes { get; }

Property Value

Type: System.Reflection.FieldAttributes
The attributes for this field.

ExceptionCondition
MethodAccessException

This member is invoked late-bound through mechanisms such as Type.InvokeMember.

All members have a set of attributes, which are defined in relation to the specific type of member. FieldAttributes informs the user whether this field is a private field, a static field, and so on.

To get the Attributes property, first get the class Type. From the Type, get the FieldInfo. From the FieldInfo, get the Attributes.

The following example builds three fields and displays their field attributes. A FieldAttributes value can contain more than one attribute, such as both Public and Literal, as shown in the third field.


using System;
using System.Reflection;

public class Example
{
   // Make three fields:
   // The first field is private.
   private string m_field = "String A";

   // The second field is public.
   public string Field = "String B";

   // The third field is public const (hence also literal and static),
   // with a default value.
   public const string FieldC = "String C";


   // Make the output TextBlock visible to all Shared members.
   static System.Windows.Controls.TextBlock outputBlock;

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      Example.outputBlock = outputBlock;

      outputBlock.Text += "\nReflection.FieldAttributes\n";
      Example ex = new Example();

      // Get a Type object for Example, and a FieldInfo for each of
      // the three fields. Use the FieldInfo to display field
      // name, value for the Example object in d, and attributes.
      //
      Type myType = typeof(Example);
      FieldInfo fiPrivate = myType.GetField("m_field",
          BindingFlags.NonPublic | BindingFlags.Instance);
      DisplayField(ex, fiPrivate);

      FieldInfo fiPublic = myType.GetField("Field",
          BindingFlags.Public | BindingFlags.Instance);
      DisplayField(ex, fiPublic);

      FieldInfo fiConstant = myType.GetField("FieldC",
          BindingFlags.Public | BindingFlags.Static);
      DisplayField(ex, fiConstant);
   }

   static void DisplayField(Object obj, FieldInfo f)
   {
      object value = "<not accessible>";
      if (f.IsPublic)
      {
         value = f.GetValue(obj);
      }

      // Display the field name, value, and attributes.
      //
      outputBlock.Text += String.Format("{0} = \"{1}\"; attributes: {2}\n",
          f.Name, value.ToString(), f.Attributes);
   }
}

/* This code example produces the following output:

Reflection.FieldAttributes
m_field = "<not accessible>"; attributes: Private
Field = "String B"; attributes: Public
FieldC = "String C"; attributes: Public, Static, Literal, HasDefault
 */


Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Show:
© 2014 Microsoft