- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
FxCop 10 提示以下内容:
using XYZ.Blah; //CA1709 - "XYZ"
using Xyz.Blah; //No complaint.
using XylophoneSuperDuperLongFullName.Blah; //I don't want to have a long full name for my company name.
问题是...我希望我的公司名称全部大写,因为 XYZ 是缩写。名称的长版本太长而不能成为有用的 namespace 。微软逃脱了这种事情,因为他们的首字母缩写词只有 2 个字母。
using MS.Something; //No Complaint.
using Microsoft.SomethingElse; //No Complaint.
所以,我正在考虑添加一个 SuppressMessageAttribute
来抑制这个警告。但是,我不确定如何正确地做到这一点(或者甚至把它贴在哪里),这样它只会影响这个实例。我不想抑制该命名空间内的任何内容,因为我想捕捉我犯的任何其他错误。我确实查看了 msdn 和谷歌搜索但我找不到任何显示如何专门针对此实例的内容。我找到的最接近的是 Scope = "namespace",但我不确定这是否意味着它会影响实际的命名空间名称,或者它是否会影响该命名空间内的所有内容。
最佳答案
MSDN - CA1709: Identifiers should be cased correctly :
It is safe to suppress this warning if you have your own naming conventions, or if the identifier represents a proper name, for example, the name of a company or a technology.
You can also add specific terms, abbreviations, and acronyms that to a code analysis custom dictionary. Terms specified in the custom dictionary will not cause violations of this rule. For more information, see How to: Customize the Code Analysis Dictionary.
话虽这么说,如果您觉得有理由屏蔽该消息,那真的一点也不难。在 FxCop 10 中,右键单击要抑制的任何消息,然后转到复制为>抑制消息或复制为>模块级抑制消息。
您应该将 SuppressMessageAttribute
放在适当的位置。抑制单个位置的属性应放置在该位置上,例如,在方法、字段、属性或类之上。
在你的例子中,没有放置属性的特定位置(默认情况下它应该复制为 [module: SuppressMessage(...)]
。这是一个很好的迹象表明如果它是特定于文件的模块级抑制(例如,特定于文件的资源),则它属于文件顶部。或者,更有可能,它属于 GlobalSuppressions.cs 文件。
using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Justification = "Because I said so!", MessageId = "XYZ", Scope = "namespace", Target = "XYZ.Blah")]
如果需要,您也可以缩短 CheckId
属性,但最好了解 CA1709 的含义。如果您不喜欢,这也有效:
using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Naming", "CA1709", Justification = "Because I said so!", MessageId = "XYZ", Scope = "namespace", Target = "XYZ.Blah")]
最后...除非您在构建中包含“CODE_ANALYSIS”符号,否则所有这一切都将毫无结果。转到 Properties>Build 并添加条件编译符号。
关于c# - StyleCop/FxCop 10 - 如何仅在 namespace 级别正确抑制消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6386902/
我有以下内容,我收集到应该在特定代码行上禁用 stylecop 规则。 [SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules",
我已将以下导入语句添加到 csproj 文件中: 这项工作很好,但是我只希望样式 cop 分析在 Debug 版本上运行,而不是在 Release 版本上运行。我的 Google Fu 今天让我失望
StyleCop 规则 SA1642 坚持要求我的构造函数文档头必须以“初始化...的新实例”开头。 虽然我同意规则本身,但我就是无法让自己接受 StyleCop 强制执行我认为丑陋的拼写。它是用“s
是否有可能让 StyleCop 说这是使用花括号的正确方法? if (request.Query == string.Empty) { return SearchResponse.Empty;
我收到如下屏幕截图所示的警告,我不明白为什么会这样对待。我经常需要“区域化”我的代码。 你觉得怎么样? 最佳答案 虽然这个 StyleCop 规则确实只是一个建议,但我不会禁用它。这些#region
有人根据 IDesign 编码标准定制 StyleCop 规则吗? 最佳答案 你可能想尝试Code Style Enforcer 。它管理基于 iDesign 标准的规则。 我认为您可以为开发时完成的
我在 StyleCop 规则 SA1503 (CurlyBracketsMustNotBeOmitted) 上遇到了困难。 在我的代码中,我经常有一个模式: public void SomeFunct
我想使用 TeamCity 7.1 中的 StyleCop 构建运行器插件来测试我的项目中的 StyleCop 规则。每个项目都有自己的 StyleCop 设置文件,从 Visual Studio 进
我想将 StyleCop SuppressMessageAttribute 添加到某些代码中,但我不想要求安装 StyleCop。 我的项目是否需要引用 StyleCop 二进制文件?如果需要,引用哪
基于几篇好文章,我已经能够成功地创建一些自定义 StyleCop 规则。作为引用,这里列出了一些我发现对这个主题非常有用的文章: How to Implement a Custom StyleCop
我正在寻找设置文件以手动更改设置 - 但找不到。 我按照以下说明安装:http://stylecop.codeplex.com/wikipage?title=Setting%20Up%20StyleC
我正在我的 VS2015 中将 stylecop classic 升级到最新版本 (StyleCop.Analyzers 1.0.0),根据 GitHub 的介绍,我不能再使用 Settings.St
我被要求以如下方式将 StyleCop 集成到我们的 CI 构建过程中: 我们的单个项目文件 (大)解决方案不受影响 我不必使用任何 3rd 方 工具 第一个要求(我还没有完全理解这一点)是因为我们不
是否可以在一个项目中仅对1个文件运行StyleCop? 最佳答案 是的,通过从.cs文件的上下文菜单中而不是从“工具”菜单或项目的上下文菜单中选择“运行StyleCop”。 http://cleart
是否有任何方法可以配置 StyleCop 以忽略属性文档?我只想保留方法、构造函数和类的规则。我知道我们可以通过“包含字段”选项禁用字段。 最佳答案 规则 SA1609 和 SA1610 涵盖属性文档
如何对自定义规则使用抑制? 最佳答案 您可以使用 SuppressMessageAttribute 来抑制违反自定义规则的行为,其方式与对作为 StyleCop 的一部分发布的规则所做的完全相同。例如
我有一个非常简单的问题。是否打算同时运行 StyleCop 和 ReSharper? StyleCop 提供代码分析,但 Re-Sharper 也提供代码分析......它们真的都是必需的吗? 提前致
StyleCop 是一个很棒的视觉工作室小插件。但它不会向您显示实时提示或提供任何自动修复。 随之而来的是 reSharper 和 StyleCop for reSharper,这是理想的解决方案,但
我刚刚将 StyleCop 从 4.7.36.0 升级到 4.7.37.0(后者现在包括拼写支持)。 它在我的本地机器上运行良好。 但是,当它在 TeamCity 中运行时(以前在那里工作过),我现在
我在使用 StyleCop 时遇到了问题,这让我很抓狂。我最近在一台新机器上安装了它,每次我去编辑主设置文件(通过 Visual Studio 或 StyleCop 编辑器)时,我都会收到以下错误:
我是一名优秀的程序员,十分优秀!