c# 特性类的使用

程序员有的时候需要给对象字段添加一下特性(如字段描述信息),然后在程序中得到这些信息,c#中特性类使用如下: 

自定义特性类:(必须派生自System.Attribute特性类)
    public class discription : System.Attribute
    {
        public string discription1;
        public string discription2;
        public string discription3;
        public string discription4;
        public string discription5;
        public discription(string str1, string str2, string str3, string str4)
        {
            this.discription1 = str2;
            this.discription2 = str3;
            this.discription3 = str4;
            this.discription4 = str4;
            this.discription5 = str1;
        }
    }

  ///需要添加特性的类
    public class Student
    {
        [discription("描述1", "描述2", "描述3", "描述4")]
        public string name;
        [discription("密码1", "密码2", "密码3", "密码4")]
        public string password;
        [discription("方法1", "方法2", "方法3", "方法4")]
        public void Say()
        {

    //.....

        }
    }

  //获取特性信息           
    public partial class AttributeTest : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Student s = new Student();
            FieldInfo file = s.GetType().GetField("name");//得到name字段
            object[] attrbutes = file.GetCustomAttributes(typeof(discription), false);//得到name字段特性集合
            foreach (object o in attrbutes)
            {
                discription dis = o as discription;

      //dis对象就是派生的特性类对象  可以通过此对象获得描述信息
            }
        }
    }

 

posted @ 2013-06-30 11:20  xiangxldream  阅读(783)  评论(0编辑  收藏  举报