当某人使用某种CLR方法时,我可以发出构建警告吗?

有没有办法在代码中标记方法Guid.NewGuid使用警告? 我想通过自定义实现重新使用所有用法,我不希望在将来的代码中使用Guid.NewGuid

解决这个问题的现代方法是使用Code Fix构建Roslyn Analyzer 。

这将允许您标记错误列表中使用它的所有位置,并提供简单的“单击以获得正确的代码”转换。

当然,与其他答案一样,它确实需要您在Visual Studio中使用适当的工具。 值得庆幸的是,如果您的“更好”的guid生成例程被打包为nuget包的一部分,您也可以将分析器放在那里。

这不是你想要的,但是在你的代码文件中搜索该字符串的unit testing呢? 未来的开发人员不会立即看到警告,但门禁办理登机手续会抓住它。

没有办法做到这一点。 仅供参考,如果您拥有此类,则可以使用ObsoleteAttribute但无法更改CLR类

另外 Guid是一个struct所以它是sealed (实际上它是一个结构,但它是有效密封的)。 如果它是普通class您可以覆盖该方法。 但Guid不可能做到这一点。 这也是一个static方法,不能被覆盖。 所以,是的,有很多理由说明为什么这是不可能的。

防止这种情况的最佳方法是实现Visual Studio添加,类似于StyleCop,或者在您的签入/自动构建脚本中添加规则以检查这一点并阻止构建(如果它包含违规代码)。

如果你没有自动构建,那么我建议你研究Jenkins,Team City等持续集成工具。