目录
前言
BannedApiAnalyzers 分析器
结论
前言
上次,我们在《C#怎么测试静态方法》中介绍了使用接口IClock
替代DateTime.Now
,方便测试。
但是,可能还是有人会无意识地在代码中使用DateTime.Now。
那么,我们希望开发人员不能再使用DateTime.Now
。
怎么实现呢?
我们可以利用代码分析器帮助我们达到目的。
BannedApiAnalyzers 分析器Microsoft.CodeAnalysis.BannedApiAnalyzers 允许设置项目中禁用的 Symbol(类型、方法、属性等)的列表。当开发人员使用其中一个被禁用的 Symbol 时,分析器将报告警告。
首先,将BannedSymbols.txt
添加到项目中:
并将禁用的 Symbol 按以下格式填入文件:
{Documentation Comment ID string for the symbol}[;Description Text]
比如禁用DateTime.Now
:
P:System.DateTime.Now;请使用 IClock
详细格式说明请参看 https://github.com/dotnet/roslyn-analyzers/blob/master/src/Microsoft.CodeAnalysis.BannedApiAnalyzers/BannedApiAnalyzers.Help.md
引用Nuget 包 Microsoft.CodeAnalysis.BannedApiAnalyzers,只要项目中使用了DateTime.Now
,编译后会生成警告。
我们也可以将严重性改为错误,强制编译失败:
今天,我们介绍了使用 BannedApiAnalyzers 禁用 Symbol。