C#类前面加[]-----Attritube 特性
最近在写WebAPI做接口测试时,发现Controller类都继承了一个自定义的FilterApiController类,
这个类的类名上面有写了一个【LoginFilter】(LoginFilter自定义的一个特性类),太长时间没有复习过基础知识,忘了这是什么用法。
特性(Attribute)不但可以添加在类前,还可以添加到方法、结构、枚举、组件等。
类前就是类特性
方法前就是方法特性
特性的最主要目的就是自描述
Attribute的作用是为元数据添加内容。和注释的区别,注释给人看,程序运行被丢弃,但是特性会被编译器编译
特性都必须继承自System.Attribute类
添加方法就是在对应的前面添加【】
特性(Attribute)可以添加默认的,也可以添加自定义的。
比如我上面的截图,就是自定义了一个登录过滤特性类,每个继承FilterApiController的控制器,都必须实现登录,不登录则被过滤掉。
简单理解:类上面有这个特性,则该类必须实现或添加这个特性类中的方法或者属性。
[Serializable]
比如这个序列化,不加序列化的类,不能在网络上传输。