C#_Attribute特性
[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特性的更多相关文章
- C#高级特性_Attribute
Attribute: 公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法和属性等.Attributes和Microsoft .NET ...
- Fis3的前端工程化之路[三大特性篇之声明依赖]
Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...
- Fis3的前端工程化之路[三大特性篇之资源定位]
Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...
- Fis3的前端工程化之路[三大特性篇之内容嵌入]
Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...
- .NET 4.6.2正式发布带来众多特性
虽然大多数人的注意力都集中在.NET Core上,但与原来的.NET Framework相关的工作还在继续..NET Framework 4.6.2正式版已于近日发布,其重点是安全和WinForms/ ...
- SQL Server 2014 新特性——内存数据库
SQL Server 2014 新特性——内存数据库 目录 SQL Server 2014 新特性——内存数据库 简介: 设计目的和原因: 专业名词 In-Memory OLTP不同之处 内存优化表 ...
- 探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- InnoDB关键特性学习笔记
插入缓存 Insert Buffer Insert Buffer是InnoDB存储引擎关键特性中最令人激动与兴奋的一个功能.不过这个名字可能会让人认为插入缓冲是缓冲池中的一个组成部分.其实不然,Inn ...
- ElasticSearch 5学习(10)——结构化查询(包括新特性)
之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...
随机推荐
- K邻近分类算法
# -*- coding: utf-8 -*- """ Created on Thu Jun 28 17:16:19 2018 @author: zhen "& ...
- SELinux 是什么?
一.SELinux的历史 SELinux全称是Security Enhanced Linux,由美国国家安全部(National Security Agency)领导开发的GPL项目,它拥有一个灵活而 ...
- 华硕200系主板完美兼容M.2安装Win7系统
虽然Windows 10系统的装机率正不断攀升,但经典的Windows 7依然有着大量的用户群体.特别是在我们中国, Windows 7依然是许许多多电脑用户的装机首选系统. 经久不衰的Windows ...
- vue-cli在控制台创建vue项目时乱码的问题
新装的win10系统,使用vue-cli在控制台创建项目时出现乱码,请问如何处理? 解决: 打开cmd,在控制台输入CHCP 65001,按回车键即可将编码格式设成utf-8,再创建就不会乱码了. 执 ...
- 第 16 章 C 预处理器和 C 库(可变参数:stdarg.h)
/*------------------------------------------------- varargs.c -- use variable number of arguments -- ...
- 计算机基础-CPU
CPU(Central Processing Unit中央处理器)由运算器和控制器组成--微机性能的集成度最高的核心部件 1.金属触点 2.附带散热器 风冷式 热管散热式 水冷式等 扣具结构要和CPU ...
- python随机生成6位数验证码
#随机生成6位数验证码 import randomcode = []for i in range(6): if i == str(random.randint(1,5)): cod ...
- 移动端 Retina屏border实现0.5px
首先来看一下造成Retina边框变粗的原因 其实这个原因很简单,因为css中的1px并不等于移动设备的1px,这些由于不同的手机有不同的像素密度.在window对象中有一个devicePixelRat ...
- kafka监控kafka-eagle 容器化配置
由于kafka.zk 集群已经部署在k8s中, kafka的服务名 kafka-hs, zk的服务名为:zk-cs ,对kafka进行监控,所以需要把监控部署到k8s中,选择使用kafka-eagl ...
- zabbix监控nginx连接数量
#!/bin/bash conn=`netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}' | grep "E ...