2017-08-04 28 views
0

我有一个类(构造函数),我需要暴露在业务层,但它需要仔细考虑和使用理由(任何其成员)。我希望它在默认情况下生成编译器警告,并将我们的团队过程建立为记录内联使用对齐和pragma suppress或类似内容。自定义可压缩编译器警告很少必要的方法

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

警告:此代码绕过用户的安全过滤器。如果您打算使用 ,请在此处评论此代码如何排除 敏感数据的曝光,然后跟随#pragma suppress。

此外,理想情况下,消息显示时不需要团队成员将任何东西安装到他们的VS.我们使用VS 2017

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

如果您怀疑存在重复问题,请阅读以下内容: 请注意,我已经回顾了其他“类似”问题。有些人试图将代码标记为需要审查(接受的答案是这是对编译器警告的不当使用)。有些确实代表过时的代码,所以答案很明显。有些人看到复杂的规则,比如“你还必须调用兄弟姐妹的方法”。

+1

请提供信息(如建议或理由)downvotes。谢谢。 – shannon

+1

您可能对https://stackoverflow.com/questions/154109的回答和相关问题感兴趣。看起来你可以用Roslyn解决它 – devio

回答

1

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