我有一个类(构造函数(,我需要在业务层中公开,但它需要仔细考虑和使用(其任何成员(的理由。我希望它默认生成编译器警告,并将我们的团队流程建立为记录内联使用理由和pragma suppress
或类似内容。
理想情况下,警告将是自定义文本,例如:
警告:此代码绕过用户安全筛选器。如果您打算 这个,请在这里评论此代码如何排除暴露 敏感数据,然后跟随 #pragma 抑制。
此外,理想情况下,显示消息时团队成员无需在其 VS 中安装任何内容。我们使用VS 2017
我目前将代码标记为[Obsolete]
,但它在语义上不准确,需要用#pragma warning disable 0618
后跟#pragma warning enable 0618
包装一行或多行。我宁愿鼓励单独解决每一行,类似于#pragma suppress
语法。
如果您怀疑有重复的问题,请阅读以下内容: 请注意,我已经回顾了其他"类似"问题。有些人试图将代码标记为需要审查(接受的答案是这是对编译器警告的不当使用(。有些确实代表了过时的代码,所以答案是显而易见的。有些人看到复杂的规则,比如"你还必须调用同级方法"。
我认为这是处理大型遗留代码的地方的常见问题,但我仍然没有找到理想的解决方案。我过去所做的,至少对我的团队有用,就是使用Visual Studio的代码图功能。查看跨解决方案映射依赖项。此代码图使用 Microsoft 的 DGML,这是一种 XML 样式的文档,旨在创建对象之间的链接。如果编写一个工具或脚本来分析此文档并查找相关构造函数的用法并在 CI 生成中运行它,则可以跟踪它的用法,并在检测到新用途时标记生成/提交。这样,您就不必将其安装在开发人员的任何计算机上,除非您是构建管理员,否则您不会关闭此步骤。