如何从属性中抛出编译错误?
.NET中有属性 (例如ObsoleteAttribute
),它们能够阻止编译或至少抛出编译时警告,具体取决于它们的配置。
如何编写一个能够干扰编译的属性? 有没有办法从微软以外的地方做到这一点?
Obsolete
属性是“编译魔术” – 如果不修改编译器,就不能自己做这样的事情。 但是,与往常一样,有一些解决方法 – 例如,看看这个和这个线程。
使用PostSharp: 生成自定义编译时警告C#
在编译器中展示此内容的任何属性都是特殊情况。 例如, [Obsolete]
行为在C#规范(17.4.3)中描述。
你可以写一个自定义的FxCop规则吗?