Field Attributes : Class Variables « Class Interface « C# / C Sharp






Field Attributes

 

using System;
using System.Reflection;

public enum RegHives {
    HKEY_CLASSES_ROOT,
    HKEY_CURRENT_USER,
    HKEY_LOCAL_MACHINE,
    HKEY_USERS,
    HKEY_CURRENT_CONFIG
}

public class RegKeyAttribute : Attribute {
    public RegKeyAttribute(RegHives Hive, String ValueName) {
        this.Hive = Hive;
        this.ValueName = ValueName;
    }

    protected RegHives hive;
    public RegHives Hive {
        get { return hive; }
        set { hive = value; }
    }

    protected String valueName;
    public String ValueName {
        get { return valueName; }
        set { valueName = value; }
    }
}

class SomeClass {
    [RegKey(RegHives.HKEY_CURRENT_USER, "Foo")]
    public int Foo;

    public int Bar;
}

class Test {
    [STAThread]
    static void Main(string[] args) {
        Type type = Type.GetType("FieldAttribs.SomeClass");
        foreach (FieldInfo field in type.GetFields()) {
            foreach (Attribute attr in
                field.GetCustomAttributes(true)) {
                RegKeyAttribute rka =
                    attr as RegKeyAttribute;
                if (null != rka) {
                    Console.WriteLine("{0} will be saved in {1}\\\\{2}", field.Name, rka.Hive, rka.ValueName);
                }
            }
        }
    }
}

 








Related examples in the same category

1.The super-string class.
2.A Simple Class and Objects
3.Default Values of Class Member Variables
4.Class variables with default valueClass variables with default value
5.Static class variableStatic class variable
6.declare a class Address containing the data members to describe a US address along with the member functions