class1.cs

来自「C#开发教程 由浅入深 配有实例 是初学者的好帮手」· CS 代码 · 共 73 行

CS
73
字号
using System;
using System.Reflection;

namespace FieldAttribs
{
	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);
					}
				}
			}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?