//如果没有定义 wjire 或者 refuge,
//编译器不会再元数据中生成特性信息,也就是说利用反射找不到特性信息
//但是,特性类的定义元数据和实现仍在程序集中
//#define wjire
#define refuge
using System;
using System.Diagnostics;
using System.Reflection;
namespace Test3
{
[Cond]
class Program
{
static void Main(string[] args)
{
//条件特性类
var flag = CustomAttributeExtensions.IsDefined(typeof(Program), typeof(CondAttribute));
Console.WriteLine(flag);
var cond = CustomAttributeExtensions.GetCustomAttribute(typeof(Program), typeof(CondAttribute));
Console.WriteLine(cond?.GetType());
Console.ReadKey();
}
}
[Conditional("wjire")]
[Conditional("refuge")]
class CondAttribute : Attribute
{
public CondAttribute()
{
Console.WriteLine("this is ctor");
}
}
}