C# 很少需要的方法的自定义可抑制编译器警告

C# 很少需要的方法的自定义可抑制编译器警告,c#,visual-studio,compiler-warnings,code-analysis,C#,Visual Studio,Compiler Warnings,Code Analysis,我有一个类(构造函数),我需要在业务层中公开它,但它需要仔细考虑并证明(它的任何成员)的使用是合理的。我希望它在默认情况下生成一个编译器警告,并将我们的团队流程建立为记录内联使用理由和pragma suppress或类似内容 理想情况下,警告应为自定义文本,例如: 警告:此代码绕过用户安全筛选器。如果你愿意的话 这一点,请在此评论该代码如何排除 敏感数据,然后使用#pragma suppress 同样,理想情况下,消息显示时团队成员无需在其VS中安装任何东西。我们使用VS 2017 我目前将代码

我有一个类(构造函数),我需要在业务层中公开它,但它需要仔细考虑并证明(它的任何成员)的使用是合理的。我希望它在默认情况下生成一个编译器警告,并将我们的团队流程建立为记录内联使用理由和
pragma suppress
或类似内容

理想情况下,警告应为自定义文本,例如:

警告:此代码绕过用户安全筛选器。如果你愿意的话 这一点,请在此评论该代码如何排除 敏感数据,然后使用#pragma suppress

同样,理想情况下,消息显示时团队成员无需在其VS中安装任何东西。我们使用VS 2017

我目前将代码标记为
[过时]
,但它在语义上不准确,需要用
#pragma warning disable 0618
包装一行或多行,后跟
#pragma warning enable 0618
。我更愿意鼓励每一行的单独解析,类似于
#pragma suppress
语法

如果您怀疑问题重复,请阅读以下内容:
请注意,我已经复习了其他“类似”的问题。有些人试图将代码标记为需要检查(公认的答案是这是不恰当地使用编译器警告)。有些确实代表了过时的代码,因此答案是显而易见的。有些人认为规则很复杂,比如“还必须调用同级方法”。

我认为这是处理大型遗留代码的地方的常见问题,但我仍然没有找到理想的解决方案。我过去所做的,至少在我的团队中起到了作用,就是使用VisualStudio的代码映射功能。看一看。此代码映射使用Microsoft的DGML,这是一种XML样式的文档,旨在创建对象之间的链接。如果您编写了一个工具或脚本来解析此文档,并查找相关构造函数的用法,然后在CI生成中运行它,则可以跟踪它的用法,并在检测到新用法时标记生成/提交。这样,您就不必在任何开发人员的机器上安装它,除非您是build admin,否则您不会关闭此步骤。

请提供有关否决票的信息(如建议或理由)。谢谢。您可能对的答案和相关问题感兴趣。看来你可以和Roslyn一起解决