multipleattributes.cs

来自「vc的原码例子12 vc的原码例子12」· CS 代码 · 共 95 行

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

class FileandDirectoryAttribute: Attribute
{
	public FileandDirectoryAttribute(string directory, string file)
	{ 
		this.Directory = directory;
		this.File = file;
	}

	protected string directory;
	public String Directory
	{
		get { return(directory); }
		set { directory = value; }
	}

	protected string file;
	public String File
	{
		get { return(file); }
		set { file = value; }
	}
}


class VersionInformationAttribute: Attribute
{
	public VersionInformationAttribute(string version)
	{ 
		this.version = version;
	}

	public string version;
}

class ProgrammerInformationAttribute: Attribute
{
	public ProgrammerInformationAttribute(string name, string date)
	{ 
		this.name = name;
		this.date = date;
	}

	public string name;
	public string date;
}


[VersionInformation("1.0A")]
[ProgrammerInformation("Jamsa", "9/30/02")]
class SomeClass
{
	public SomeClass(string value)
	{
		SessionFile = value;
	}
	[FileandDirectory("USER_SESSION", "SESSION_ID.txt")]
	public string SessionFile;
}


public class MultipleAttribute
{
	public static void Main()  
	{
		SomeClass Demo = new SomeClass("C:\\USER_SESSION\\SESSION_ID.txt");

		Type type = typeof(SomeClass);

		foreach (Attribute attr in type.GetCustomAttributes(true))
		{
			if (attr is ProgrammerInformationAttribute)
			{
				Console.WriteLine("{0} {1}", attr, ((ProgrammerInformationAttribute)attr).name);
				Console.WriteLine("{0} {1}", attr, ((ProgrammerInformationAttribute)attr).date);
			}  
			else if (attr is VersionInformationAttribute)
				Console.WriteLine("{0} {1}", attr, ((VersionInformationAttribute)attr).version);
		}  

		foreach(FieldInfo field in type.GetFields())
		{
			foreach (Attribute attr in field.GetCustomAttributes(true))
			{
				if (attr is FileandDirectoryAttribute)
				{
					Console.WriteLine("{0} {1}", attr, ((FileandDirectoryAttribute)attr).Directory);
					Console.WriteLine("{0} {1}", attr, ((FileandDirectoryAttribute)attr).File);
				}
			}  
		}
	}
}

⌨️ 快捷键说明

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