有没有办法让 C# 自定义属性在编译时引发消息?

Jea*_*anz 2 .net c# custom-attributes compile-time

我的一位同事正在使用ObsoleteAttribute尚未实现的方法,因此我们在编译时收到警告。

然而,由于要实现的方法与过时的方法完全相反,这让我很烦恼。

NotYetImplementedButPleaseBePatientWeVeGotLoadsOfOtherThingsToDoAsWellAttribute我在文档中没有看到 a ,所以我想也许我们可以创建一个。

ObsoleteAttributesealed,所以我们不能继承它。(是的,我在尝试时发现了这一点。很好的尝试,我。)

有没有其他方法可以模仿ObsoleteAttribute,但有一个更合适的名字?

Mar*_*ell 6

您无法实现与完全相同的效果[Obsolete],因为这是由编译器直接处理的。但是,您可以编写一个“Roslyn 分析器”来查找您喜欢的任何内容,并根据您的喜好添加警告、错误、建议等。它甚至可能(也许另外)尝试寻找throw new NotImplementedException();. 然而,编写 Roslyn 分析器并不是一项简单的任务。