我想在我的自定义(PostSharp)属性上定义一个约束。我的目标是在编译时得到错误或警告,如果类X不实现Y接口但它具有我的属性。
所以这应该工作:
[MyAttributeOnlyForY]
public class X : Y { ... }
但这应该会破坏编译过程:
[MyAttributeOnlyForY]
public class X { ... }
这怎么可能?
原因
这个属性就像一个方面(这是 PostSharp属性),我想确保编织类为这个属性提供所有需要的信息。
我想避免空结果
(eventArgs.Instance as ILoggerServiceOwner)
我认为合规时间检查是一种很好的做法。
解决方案
我在这里找到了一个完美的开始:Validating attribute usage with PostSharp Aspects