[AttributeUsage(AttributeTargets.All)]//指定Attribute的使用范围,比如只能在class级别使用
public class Column : Attribute
{
public Column(string str)
{
this.str = str;
}
public string str { get; set; }
}
//第2个
[AttributeUsage(AttributeTargets.All)]
public class Table : Attribute
{
public Table(string str)
{
this.str = str;
}
public string str { get; set; }
} //2个属性
[Column("class")]
[Table("table class")]
public class Abc
{
public string x { get; set; }
[Column("attr")]
public Int32 y { get; set; }
}
protected void Page_Load(object sender, EventArgs e)
{
//通过反射可以调用到这个类型头上的attr
Type type = typeof(Abc);
 bool isGot = Attribute.IsDefined(type, typeof(Column)); //查看有没有某个Attribute
Attribute[] attrs = Attribute.GetCustomAttributes(type); //批量获取
string xy = attrs.First().GetType().Name; //可以查看它的名字来选择想要的,或是看有没有想要的.
Column column = (Column)Attribute.GetCustomAttribute(type, typeof(Column)); //强转
Column[] columns = (Column[])Attribute.GetCustomAttributes(type, typeof(Column));
column = columns[0];
string x = column.str; //调用方法或是公开属性等等都可以 //实例化之后也是可以一样拿
Abc a = new Abc();
PropertyInfo info = a.GetType().GetProperty("y");
Column attribute2 = (Column)Attribute.GetCustomAttribute(info, typeof(Column));
string xyz = attribute2.str;
}

C#_Attribute特性的更多相关文章

  1. C#高级特性_Attribute

    Attribute: 公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法和属性等.Attributes和Microsoft .NET ...

  2. Fis3的前端工程化之路[三大特性篇之声明依赖]

    Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...

  3. Fis3的前端工程化之路[三大特性篇之资源定位]

    Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...

  4. Fis3的前端工程化之路[三大特性篇之内容嵌入]

    Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...

  5. .NET 4.6.2正式发布带来众多特性

    虽然大多数人的注意力都集中在.NET Core上,但与原来的.NET Framework相关的工作还在继续..NET Framework 4.6.2正式版已于近日发布,其重点是安全和WinForms/ ...

  6. SQL Server 2014 新特性——内存数据库

    SQL Server 2014 新特性——内存数据库 目录 SQL Server 2014 新特性——内存数据库 简介: 设计目的和原因: 专业名词 In-Memory OLTP不同之处 内存优化表 ...

  7. 探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  8. InnoDB关键特性学习笔记

    插入缓存 Insert Buffer Insert Buffer是InnoDB存储引擎关键特性中最令人激动与兴奋的一个功能.不过这个名字可能会让人认为插入缓冲是缓冲池中的一个组成部分.其实不然,Inn ...

  9. ElasticSearch 5学习(10)——结构化查询(包括新特性)

    之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...

随机推荐

  1. sql server系统表和视图相关的语句

    一.系统表 数据字典的详细信息请查SQL SERVER BOL,这里仅列出一部分. 1.1.sysservers 1.查看所有本地服务器及链接服务器 select * from master..sys ...

  2. windows 自动贴边

    设置windows 自动贴边(窗口拖到显示器边框就自动适应屏幕): https://jingyan.baidu.com/article/d2b1d1029d17b95c7e37d4f0.html 资源 ...

  3. 用Python做股市数据分析(一)

    本文由 伯乐在线 - 小米云豆粥 翻译.未经许可,禁止转载!英文出处:Curtis Miller.欢迎加入翻译组. 这篇博文是用Python分析股市数据系列两部中的第一部,内容基于我犹他大学 数学39 ...

  4. Head First Android --- Intent

    How to create the intentYou create an intent that specifies an action using the following syntax:whe ...

  5. python之字符串的常用操作(转)

    1. 字符串的操作 字符串的连接操作 符号: + 格式:str1 + str2 例如:str1 = 'I Love' str2 = 'You!' print(str1 + str2) >> ...

  6. February 6th, 2018 Week 6th Tuesday

    To be is to be perceived. 存在即被感知. How to interpret this quote? Maybe it means that everything in you ...

  7. while else 结构体(自测)

    while else : while循环被break打断,则不执行与while并列的else程序. count = 0 while count <= 5: count = count + 1 i ...

  8. 17秋 软件工程 团队第五次作业 Alpha Scrum11

    17秋 软件工程 团队第五次作业 Alpha Scrum11 今日完成的任务 世强:管理员头像图片上传和显示逻辑处理,活动添加及上传图片: 港晨:完成Web界面前后端对接: 树民:标准化后端接口格式: ...

  9. <20190104>关掉一些鸡肋的Win10功能

    讨厌鬼001 # - windows defender -    本身没什么卵用, 却一直占着位置, 而且不断提示更新. 必须关闭它 . 在"运行" 中,  输入 "gp ...

  10. IO流_演示键盘录入

    读取一个键盘录入的数据,打印到控制台上 键盘本身就是一个标准的输入设备,对于java而言,对于这种输入设备都有相应的对象在System类中 import java.io.IOException; im ...