码迷,mamicode.com
首页 > Windows程序 > 详细

C# 特性Attributes 和反射

时间:2015-10-10 17:15:08      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

一,Attributes 类新建一个子类,DetailAttributes
技术分享View Code
二, 在类的属性声明上面加Attributes
public class testAttributes
{
    [Detail(AttrName = "宽度", Html = "<input type=‘text‘ />", DefaultValue = "50", DataSource = null)]
    public string username {get;set;}

    public class FactoryDetail
    {
        [Detail(AttrName = "宽度", Html = "<input type=‘text‘ />", DefaultValue = "50", DataSource = null)]
        public string Width { set; get; }

        [Detail(AttrName = "高度", Html = "<input type=‘text‘ />", DefaultValue = "50", DataSource = null)]
        public string Height { set; get; }

        [Detail(AttrName = "状态", Html = "<select></select>", DefaultValue = null, DataSource = "select text,value from status")]
        public string Status { set; get; }

        [Detail(AttrName = "Tag值", Html = "<input type=‘text‘ />", DefaultValue = "", DataSource = null)]
        public string Tag { set; get; }
        [Detail(AttrName = "描述", Html = "<input type=‘text‘ />", DefaultValue = "", DataSource = null)]
        public string Desc { set; get; }

        public string test()
        {
            string s = "";
            Type oType = this.GetType();
            foreach (PropertyInfo opi in oType.GetProperties())
            {
                object [] peratt =     opi.GetCustomAttributes(true);
                foreach (var tmp in peratt)
                {
                    if (tmp.GetType() == typeof(FactoryDetail))
                    {
                        DetailAttribute detailAtt = (DetailAttribute)tmp;

                        s += "AttrName: " + detailAtt.AttrName + " ";
                    }
                }
            }
            return s;
        }
    }
}

 

 

C# 特性Attributes 和反射

标签:

原文地址:http://www.cnblogs.com/sxypeace/p/4867425.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!