C# 特性Attributes 和反射

一,Attributes 类新建一个子类,DetailAttributes

二, 在类的属性声明上面加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;
        }
    }
}
时间: 2024-07-29 16:27:51

C# 特性Attributes 和反射的相关文章

C#反射与特性(一):反射基础

目录 C#反射与特性(一):反射基础 1. 说明 1.1 关于反射.特性 2. 程序集操作 2.1 获取 程序集对象(Assembly) 2.2 Assembly 使用 2.3 获取程序集的方式 C#反射与特性(一):反射基础 1. 说明 1.1 关于反射.特性 在 <C# 7.0 本质论>中,关于这方面的知识在 <第十八章 反射.特性和动态编程>:在<C# 7.0 核心技术指南>中,这部分内容在<第19章 反射和元数据>. [图片来自 <C# 7.0

&lt;转载&gt;C#中的特性(Attributes)

作者:sadaf alvi    阅读人次:7233    文章来源:CSDN Bolg    发布时间:2007-9-1 翻译不是为了翻译,是为了学习!因为只有翻译我才能逐句的看完整篇文章.当然还可以得到各位达人的斧正,让我由懂得皮毛到渐入佳境!乐哉,幸哉! 原文 约定: 1."attribute"和"attributes"均不翻译 2."property"译为"属性" 3.msdn中的原句不翻译 4."progr

C#中的特性(Attributes)

约定: 1.”attribute”和”attributes”均不翻译 2.”property”译为“属性” 3.msdn中的原句不翻译 4.”program entity”译为”语言元素” Attributes in C# 介绍 Attributes是一种新的描述信息,我们既可以使用attributes来定义设计期信息(例如 帮助文件,文档的URL),还可以用attributes定义运行时信息(例如,使XML中的元素与类的成员字段关联起来).我们也可以用attributes来创建一个“自描述”的

特性(Attributes)

用以将元数据或声明信息与代码(程序集.类型.方法.属性等)相关联.特性与程序实体相关联后,即可在运行时用反射技术查询特性. 例如,在一个方法前标注[Obsolete]特性,则调用该方法时VS则会提示该方法已过期的警告,如下图: 又如,在.Net Remoting的远程对象中,如果要调用或传递某个对象,例如类,或者结构,则该类或结构则必须标注[Serializable]特性.还有,我们在构建XML Web服务时用得很多的一个特性就是[WebMegthod],它可让通过HTTP请求的公开方法的返回值

C#反射与特性(三):反射类型的成员

目录 1,获取类型的信息 1.1 类型的基类和接口 1.2 获取属性.字段成员 上一篇文章中,介绍如何获取 Type 类型,Type 类型是反射的基础. 本篇文章中,将使用 Type 去获取成员信息,通过打印出反射获取到的信息,为后续操作反射打好基础. 1,获取类型的信息 我们常常可以看到 函数.方法这两个词,很多人对此进行了混用. 方法,就是 public void Test(){} 这样的形式: 函数,指具有确定命名的.并且可以通过名称调用的代码,属性.字段.方法.委托.事件等: 只要能够通

C#图解教程 第二十四章 反射和特性

反射和特性元数据和反射Type 类获取Type对象什么是特性应用特性预定义的保留的特性Obsolete(废弃)特性Conditional特性调用者信息特性DebuggerStepThrough 特性其他预定义特性有关应用特性的更多内容多个特性其他类型的目标全局特性自定义特性声明自定义特性使用特性的构造函数指定构造函数使用构造函数构造函数中的位置参数和命名参数限制特性的使用自定义特性的最佳实践访问特性使用IsDefined方法使用GetCustomAttributes方法 Note 类的元数据包含

.NET进阶篇03-Reflection反射、Attribute特性

知识需要不断积累.总结和沉淀,思考和写作是成长的催化剂 内容目录 一.概述二.反射1.反射使用2.创建对象3.调用方法4.字段属性三.特性四.总结 一.概述 反射其实无处不在,我们用VS进行调试时候,查看成员列表.修改变量值都是通过反射来实现的.我们写业务代码可能很少去写反射,但理解反射是从菜鸟到大牛的必经之路.无论EF还是ASP.NET,几乎所有框架都用到反射.反射动态创建对象.动态赋值.动态调用方法. 前面简单介绍过.NET的第一次编译,会编译成IL(中间语言),反射就是利用IL在运行时获取

C#反射Assembly 具体说明

1.对C#反射机制的理解 2.概念理解后,必须找到方法去完毕,给出管理的主要语法 3.终于给出有用的样例,反射出来dll中的方法 反射是一个程序集发现及执行的过程,通过反射能够得到*.exe或*.dll等程序集内部的信息.使用反射能够看到一个程序集内部的接口.类.方法.字段.属性.特性等等信息.在System.Reflection命名空间内包括多个反射经常使用的类,以下表格列出了经常使用的几个类. 类型 作用 Assembly 通过此类能够载入操纵一个程序集,并获取程序集内部信息 EventIn

C#反射Assembly 详细说明

1.对C#反射机制的理解2.概念理解后,必须找到方法去完成,给出管理的主要语法3.最终给出实用的例子,反射出来dll中的方法 反射是一个程序集发现及运行的过程,通过反射可以得到*.exe或*.dll等程序集内部的信息.使用反射可以看到一个程序集内部的接口.类.方法.字段.属性.特性等等信息.在System.Reflection命名空间内包含多个反射常用的类,下面表格列出了常用的几个类.类型 作用 Assembly 通过此类可以加载操纵一个程序集,并获取程序集内部信息 EventInfo 该类保存