使用IsDefined方法
我们可以使用Type对象的IsDefined方法来检测某个特性是否应用到了某个类上。
例如,以下的代码声明了一个有特性的类MyClass,并且作为自己特性的消费者在程序中访问声明和被应用的特性。代码的开始处是MyAttribute特性和应用特性的MyClass类的声明。这段代码做了下面的事情。
首先,Main创建了类的一个对象。然后通过使用从object基类继承的GetType方法获取了Type对象的一个引用
有了Type对象的引用,就可以调用IsDefined方法来判断ReviewComment特性是否应用到了这个类
第一个参数接受需要检査的特性的Type对象
第二个参数是bool类型的,它指示是否搜索MyClass的继承树来查找这个特性
var mc = new MyClass();
Type t = mc.GetType();
bool isDefined =
t.IsDefined(typeof(ReviewCommentAttribute), true);
if (isDefined)
Console.WriteLine("ReviewComment is applied to type {0}", t.Name);
---
class MyClass: MyClass2
{
}
[ReviewComment("Check it out", "2.4")]
class MyClass2
{
}