gpt4 book ai didi

c# - 在单个代码行(命名空间)上禁用 Stylecop

转载 作者:可可西里 更新时间:2023-11-01 08:45:33 30 4
gpt4 key购买 nike

我们有一个现有产品,我们希望在其中实现 StyleCop 的使用。但是,我们有一个问题,那就是我们所有的命名空间都以小写字母开头(例如 lowerCase.UpperCase.Etc.Etc.),当然这会导致 SA1300(元素必须开始使用大写字母)规则在每​​个文件中都会被打破。

不过,此时更改命名空间是不可能的,因为它已经存在,而且我们有许多合作伙伴和客户已经针对我们的 api 实现了接口(interface),并且依赖于稳定的命名空间。我相信您了解更改的后果...

我们希望在一般情况下启用规则,但在命名空间行上临时禁用。尝试过:

[模块:System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.NamingRules", "SA1300:ElementMustBeginWithUpperCaseLetter", Justification = "Reviewed. Suppression is OK here.")]

如果我把它放在命名空间行上方它会起作用,但是它基本上会完全禁用该规则,这不是我们想要的,因为我们喜欢类和类成员的规则...

我想要这样的东西:

#pragma warning disable SA1300
命名空间 lowerCase.UpperCase.Etc
{
#pragma warning 启用 SA1300

但据我了解,SA1300 没有此类警告。

有人知道如何解决这个问题吗?

提前致谢!

最佳答案

有一个解决方法。

你可以这样写:

#region Generated Code
namespace lowerCase.UpperCase.Etc
{
#endregion

按照设计,Stylecop 将忽略区域内的所有内容,因为您已声明“您不拥有代码,因此不能对样式负责” .

但是有一点:区域内的所有规则都将被忽略,因此在放置区域之前确保只有“不需要的”规则。

这实际上是对另一个问题的小评论(甚至不是答案):Disable StyleCop for specific lines

关于c# - 在单个代码行(命名空间)上禁用 Stylecop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18889574/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com