每日一练 之 .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();
    }

}

你可能感兴趣的:(framework)