2009-07-06 58 views
0

可能重复:
Custom Compiler Warnings效仿.NET [过时]属性

重复:Custom Compiler Warnings

我是新来写我自己的.NET属性,但想编写一个与System.ObsoleteAttribute属性类似的行为 - 如果一个类/成员标记了该属性,我希望该类/成员的任何调用者生成警告。

特别是我想创建一个[Unimplemented]属性 - 实际上在开发过程中使用它,而不是抛出NotImplementedExceptions。

有谁知道如何让IDE实时评估它,并在调用[Unimplemented]项目时产生警告?

回答

1

属性实际上并不做任何事情,它们基本上只是用一些元数据标记方法(或类或其他)。 IDE /编译器会执行处理以决定在看到Obsolete属性时应该执行什么操作。

如果您希望visual studio以这种方式表现另一个属性,则必须为visual studio编写自定义插件。

1

不,ObsoleteAttribute由符合CLI规范的编译器以非常特殊的方式处理,因此无法模仿它的行为。 #warning#error(见this)可能会完成这项工作。

+0

嗯,这是令人失望的;我希望把它作为一个部门标准,并写一个FxCop规则来执行它。 – STW 2009-07-06 15:10:31

0

请问为什么要这样做?这听起来像你有一些未实现的功能,但你不希望他们抛出NotImplementedExceptions?为什么不用一个空的代码块来处理一个//待办事项:评论以提醒自己,你没有完成?

顺便说一句,有一个很大的特点在ReSharper的称为“藤堂探险”这说明(和链接),以所有的//todo:意见(甚至NotImplementedException S)

+0

NotImplementedException仅在以下情况下有用:a在运行时命中它,或者b:记住在签入之前搜索它。 ObsoleteAttribute提供了一个更主动的提醒,即有空方法。也许我会采取建议:http://stackoverflow.com/questions/410719/notimplementedexception-are-they-kidding-me/410800#410800并实施提供的FxCop规则 – STW 2009-07-06 15:18:12