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