using System;
using System.Collections.Generic;
using
System.Linq;
using System.Text;
using System.Net;
using
System.IO;
using System.Threading;
using
System.Reflection;
namespace AsncyHandle
{
[AttributeUsage(AttributeTargets.All,AllowMultiple=true,Inherited=false)]
class ClassMsgAttribute : Attribute
{
public string Msg =
"";
public
ClassMsgAttribute()
{
}
public ClassMsgAttribute(string
s)
{
Msg =
s;
}
}
[ClassMsg("这是包含人类姓名类")]
class
Person
{
string
name;
[ClassMsg("这是存储人类信息字段")]
public
string Name
{
get {
return name;
}
set {
name = value; }
}
}
class
Program
{
static void Main(string[]
args)
{
//获取加特性类的实例Type
Type t =
Type.GetType("AsncyHandle.Person");
//获取加在程序集加特性类 的
特性类实例
object[] objs =
t.GetCustomAttributes(false);
//打出特性类的实例方法
foreach (ClassMsgAttribute cl in
objs)
{
Console.WriteLine(cl.Msg);
}
//获取类的方法
MemberInfo[] info =
t.GetMembers();
foreach (MemberInfo f in
info)
{
object[] bs =
f.GetCustomAttributes(false);
//打出方法的特性类消息
for (int i = 0; i < bs.Length;
i++)
{
if (bs[i] is
ClassMsgAttribute)
{
ClassMsgAttribute b = bs[i] as
ClassMsgAttribute;
Console.WriteLine(b.Msg);
}
}
}
}
}
}
原文:http://www.cnblogs.com/xuehaiyiye/p/3572428.html