如何从属性中抛出编译错误?

时间:2009-09-15 08:04:49

标签: c# .net attributes

.NET中有attributes(例如ObsoleteAttribute),它们能够阻止编译或至少抛出编译时警告,具体取决于它们的配置。

如何编写能够干扰编译的属性?有没有办法从Microsoft以外的地方做到这一点?

3 个答案:

答案 0 :(得分:6)

Obsolete属性是“编译魔术” - 如果不修改编译器,就不能自己做这样的事情。但是,与往常一样,有一些解决方法 - 例如看看thisthis主题。

答案 1 :(得分:3)

答案 2 :(得分:1)

在编译器中展示此内容的任何属性都是特殊情况。例如,在{C#规范(17.4.3)中描述了[Obsolete]行为。

你可以write a custom FxCop rule吗?