VS2008を使用していて、プロパティのカスタム属性に基づいてコンパイル時の警告/エラーを作成したいと思います(可能な場合)。
現在私が興味を持っているのは2つのケースです。
[MyAttribute (typeof(MyClass)]
MyClassがインターフェースを実装する必要がある場所。現在、属性のコンストラクターでこれを表明していますが、スタックトレースの性質上、これを追跡するのは簡単ではありません。
public MyAttribute (Type MyClassType)
{
System.Diagnostics.Debug.Assert(typeof(MyInterface).IsAssignableFrom(MyClassType),
"Editor must implement interface: " + typeof(MyInterface).Name);
}
私が興味を持っている2番目のケースは、属性にタイプが定義されている場合です。そのタイプがインターフェースを実装している場合、別の属性が存在しない場合は警告が表示されます。
IE if(MyClass.Implements(SomeInterface)&&!Exists(SomeAttibute)){警告の生成}
[MyAttribute(typeof(MyClass)]
// Comment next line to generate warning
[Foo ("Bar")]
ありがとう!