Как сгенерировать ошибку компиляции из атрибута? - PullRequest
6 голосов
/ 15 сентября 2009

в .NET есть атрибуты (например, ObsoleteAttribute), которые могут предотвратить компиляцию или, по крайней мере, выдать предупреждения о времени компиляции в зависимости от их конфигурации.

Как написать атрибут, способный мешать компиляции? Есть ли способ сделать это извне Microsoft?

Ответы [ 3 ]

6 голосов
/ 15 сентября 2009
Атрибут

Obsolete - это «магия компилятора» - вы не можете сделать что-то подобное самостоятельно без изменения компилятора. Однако, как всегда, есть обходные пути - например, взгляните на этот и этот поток.

3 голосов
/ 15 сентября 2009
1 голос
/ 15 сентября 2009

Любые атрибуты, которые демонстрируют это внутри компилятора, являются особыми случаями. Поведение [Obsolete] описано, например, в спецификации C # (17.4.3).

Вы можете написать собственное правило FxCop ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...