每日一练 之 .Net Framework的attribute
我们经常会发现有些类的上面会加上[Serilizable] [DllImport] 有些enum上加入[Flags]等等方括号,这些方括号就是.Net中的Attribute,翻译成中文可以是特性或属性,但是为了和类成员属性做区别,一般都成为特性,属性Property是类私有字段的对外访问接口。
废话不说,直接上代码。
using System;
using System.Reflection;
[AttributeUsage(AttributeTargets.All, AllowMultiple=true, Inherited= false)]
public class MyDescriptionAttribute : System.Attribute
{
private string description;
public MyDescriptionAttribute(string description)
{
this.description = description;
}
public string Description
{
get { return description == null ? string.Empty : description; }
set { description = value; }
}
public void ShowDescription()
{
Console.WriteLine(description);
}
}
[MyDescription("Sing's class")]
public class Singer
{
}
public class MyPing
{
static void Main(string[] args)
{
Type tp = typeof(Singer);
MemberInfo mi = tp;
MyDescriptionAttribute md =
(MyDescriptionAttribute)Attribute.GetCustomAttribute(mi, typeof(MyDescriptionAttribute));
md.ShowDescription();
Console.ReadLine();
}
}


浙公网安备 33010602011771号