如果我想将 my 代码中的方法声明为已弃用/已废弃,我可以向其添加[Obsolete]
属性,并使编译器在发出警告(或错误)时发出警告(或错误)使用方法。
是否可以为第三方方法(例如System.Console.WriteLine
)实现类似的效果?显然,我无法添加属性,因为我不控制代码。但也许在.NET或Visual Studio中还有其他一些技巧可用吗?
我最好寻找一个“开箱即用”的解决方案,不需要编写我自己的后期构建脚本来手动解析代码。
答案 0 :(得分:5)
使用Visual Studio 2015,您可以创建实时代码分析器,可以为几乎任何事情提供自定义设计时检查。有一个很好的教程here。这些通常作为解决方案的一部分存在,因此无论在何处编译,它们都将“跟随它”。
代码分析器可以引发编译时错误或警告,甚至可以提供UI来自动纠正问题。它们可能非常强大,但根据您的需要编写其中一个可能相当复杂。
以前版本的Visual Studio(2010+)存在similar feature。它没有很好地集成,但可能适合你。
答案 1 :(得分:3)
您可以通过在ReSharper中创建自定义代码检查规则来实现此目的。
转到ReSharper /选项/代码检查/自定义模式/添加模式,编写与已弃用的方法调用匹配的模式,并选择检查严重性,例如"建议"或"警告"。您还可以编写可以通过快速修复应用的替换模式。
示例强>:
在此示例中,System.Console
被滥用于日志记录,应由适当的log4net调用替换。
答案 2 :(得分:1)
ReSharper用户的另一种选择:ExternalAnnotations。
以下是为Selenium的WebDriver.dll
添加注释的示例:
ExternalAnnotations
旁边创建*.csproj
文件夹。WebDriver.xml
:
<?xml version="1.0" encoding="utf-8" ?>
<assembly name="WebDriver">
<member name="M:OpenQA.Selenium.INavigation.GoToUrl(System.String)">
<attribute ctor="M:System.ObsoleteAttribute.#ctor(System.String,System.Boolean)">
<argument>Use different overload of this method.</argument>
<argument>true</argument>
</attribute>
</member>