Mega Code Archive

 
Categories / C# / Class Interface
 

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);                 }             }         }     } }