- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已将 StyleCop.Analyzers NuGet 包添加到我的项目中(最新的稳定版本,1.1.118)。这包含一些确保文件头存在且正确的分析规则。我的项目还有以下 stylecop.json 文件,其 Build Action 属性设置为“C# analyzer additional file”。
{
"$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
"settings": {
"documentationRules": {
"companyName": "Me"
}
}
}
如果我将以下类添加到项目中,它会引发警告“SA1636:文件头版权文本应与设置中的版权文本相匹配”。
// <copyright file="MyClass.cs" company="Me">
// Copyright (c) Me. All rights reserved. Some extra text to intentionally cause SA1636.
// </copyright>
namespace StackOverflowSA1636
{
/// <summary>
/// A class that I wrote.
/// </summary>
public class MyClass
{
}
}
如果我从文件头中删除 Some extra text to intentionally cause SA1636.
那么警告就会消失。到目前为止一切都很好。
但是,如果我想使用其他人编写的类,无论是原样还是经过我所做的任何更改,该怎么办?我想正确地将他们的代码归功于他们。以下类引发警告 SA1636 和“SA1641:文件头公司名称应与设置中的公司名称相匹配”。
// <copyright file="SomeoneElsesClass.cs" company="Me, Someone Else">
// Copyright (c) Me, Someone Else. All rights reserved.
// </copyright>
namespace StackOverflowSA1636
{
/// <summary>
/// A class written by someone else which I've adapted for my needs.
/// </summary>
public class SomeoneElsesClass
{
}
}
Visual Studio 2019 很有帮助地建议我可以在具有如下属性的 GlobalSuppressions.cs 文件中抑制这些警告:
using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage(
"StyleCop.CSharp.DocumentationRules",
"SA1636:File header copyright text should match",
Justification = "Someone else wrote the original version of this class",
Scope = "namespace",
Target = "~N:StackOverflowSA1636")]
[assembly: SuppressMessage(
"StyleCop.CSharp.DocumentationRules",
"SA1641:File header company name text should match",
Justification = "Someone else wrote the original version of this class",
Scope = "namespace",
Target = "~N:StackOverflowSA1636")]
这确实抑制了警告,但对于整个命名空间,这不是我想要的。我只想为一个类压制他们。我尝试将它们更改为:
[assembly: SuppressMessage(
"StyleCop.CSharp.DocumentationRules",
"SA1636:File header copyright text should match",
Justification = "Someone else wrote the original version of this class",
Scope = "type",
Target = "~T:StackOverflowSA1636.SomeoneElsesClass")]
[assembly: SuppressMessage(
"StyleCop.CSharp.DocumentationRules",
"SA1641:File header company name text should match",
Justification = "Someone else wrote the original version of this class",
Scope = "type",
Target = "~T:StackOverflowSA1636.SomeoneElsesClass")]
当我进行此编辑时,Visual Studio 将属性变灰,因为 Scope
和 Target
没有解析任何内容,但是当我完成编辑时,属性不再变灰,这让我觉得我已经正确指定了 Scope
和 Target
。但是,这不会导致警告被抑制。
Visual Studio 还建议我可以像这样抑制 SA1636:
#pragma warning disable SA1636 // File header copyright text should match
// <copyright file="SomeoneElsesClass.cs" company="Me, Someone Else">
// Copyright (c) Me, Someone Else. All rights reserved.
// </copyright>
namespace StackOverflowSA1636
#pragma warning restore SA1636 // File header copyright text should match
{
/// <summary>
/// A class written by someone else which I've adapted for my needs.
/// </summary>
public class SomeoneElsesClass
{
}
}
这确实抑制了警告,但引发了三个新警告:
“SA1633:文件头丢失或不在文件顶部”(因为文件的第一行是#pragma
而不是文件头)
“SA1512: Single-line comments should not be followed by blank line”(大概是因为文件头不再被识别为文件头的一部分,因为它不在文件的顶部,所以被处理作为常规评论)
“SA1515:单行注释前应有空行”(同SA1512原因)
有一个不涉及抑制任何内容的解决方案,只需按照 StyleCop 的要求保留文件头,然后在其后加上注明原作者的注释或包含原始代码中的任何版权/许可声明。这感觉具有误导性,因为文件头有效地声称我是唯一作者,而我不是,但是有没有更好的方法既能满足 StyleCop 的要求又能正确地注明原作者的姓名?
我可以对 stylecop.json 文件做些什么来改变文件头的验证方式吗?
我是否偶然发现了 StyleCop.Analyzers 中的错误?
1 月 9 日更新
经过进一步思考,我怀疑我无法使用 SuppressMessage
抑制警告的原因是因为警告是针对文件而不是类和 Target
我指定指向类而不是文件。
对 Target
参数的不同值进行一些试验似乎表明,如果 Target
指向不存在的内容,Visual Studio 只会使属性变灰,但是当目标没有这样的警告要压制时就不会了。我怀疑可能无法以文件而不是类为目标,但是我很不高兴找到有关如何构建 Target
的任何指导。
这个 GitHub 问题似乎涵盖了我的用例,所以我没有创建新的:https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/2733
最佳答案
您基于 type
的全局抑制看起来是正确的,但我得到的结果是相同的,即这些没有被拾取,尽管抑制规则本身被突出显示/识别。
这看起来确实是一个错误的候选对象。
作为获得预期结果的替代/解决方法,您可以在 .editorconfig
文件中配置该忽略规则。
要仅针对该 SomeoneElsesClass
类,请在部分中指定目标文件名 - 此处:[{SomeoneElsesClass.cs}]
。
如果需要,您还可以使用更详细的路径,例如[{Folder/SomeoneElsesClass.cs}]
[{SomeoneElsesClass.cs}]
dotnet_diagnostic.SA1636.severity = none
dotnet_diagnostic.SA1641.severity = none
关于c# - 重用其他代码时如何修复/抑制 SA1636 和 SA1641?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70633730/
我将一个 div 设置为 100% 宽度,当以 1024 分辨率查看页面时,宽度应从 100% 变为 1000px,我让它与@media 查询一起正常工作,并且在 FF、safari chrome 上
希望有人能帮助我,我已经被困了几天了。 将我的 Domino 服务器更新到 9.01 Fix 3 后,我在 javascript 控制台上不断收到错误消息: TypeError: this.edito
我们正在使用一个基于RMI的java应用程序。当我们运行应用程序时,即使应用程序处于理想阶段,内存使用量仍然不断增加。我们主要使用Vector和散列图数据结构。如何最大限度地减少java内存使用/修复
概述 Internet Download Manager (IDM)是最流行的 Windows 下载管理器。如果你平时工作中使用过IDM,您会惊叹 IDM 下载文件的速度有多快。IDM
当我打开 brave 浏览器时,会打开一个窗口(如下所示)。它并没有真正干扰浏览器的处理。但令人担忧的是为什么这种情况一直发生...... Error On Opening Brave Browser
这是我今天在求职面试中被问到的一个问题: 看下面的代码: int n=20; for (int i =0; i
我不小心删除了/opt/local/bin/perl5.8.9 ,这似乎是 macports 编译的 perl 的主要二进制文件。 现在我有很多取决于 perl5 的端口,但不想卸载并重新安装所有端口
>>>flip fix (0 :: Int) (\a b -> putStrLn "abc") Output: "abc" 这是使用翻转修复的简化版本。 我在一些 YouTube 视频中看到了这种使用
这个问题已经有答案了: How can I fix 'android.os.NetworkOnMainThreadException'? (64 个回答) 已关闭 3 年前。 我在 Android 应
def main(): cash = float(input("How much money: ")) coins = 0 def changeCounter(n): whil
前一周我遇到了类似的问题,查询需要永远运行。在编写此查询时,我尝试应用从其他查询中学到的一些知识,但执行起来需要很长时间。 运行查询的两个单独部分时,每个部分需要 2 分钟才能完成,这是可以接受的,但
下午,我的 CSS 有问题。第三个下拉菜单放错了,我没有解决办法。 这是我想要的: 之前: http://i53.tinypic.com/2qu85z8.png 之后: http://i51.tiny
更新方法: override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingS
我知道这是一个很多人都遇到过的问题,但我不熟悉 Less 并且是 Bootstrap 的新手,我正在寻找一种全 CSS 解决方案来防止我的导航栏折叠到 768 像素以下:
在我的布局中,我创建了以下 jsfiddle 托管的可调整大小的粘性页脚。但是,在调整大小时它与内容重叠。有没有办法让它在所有浏览器上都能响应? http://jsfiddle.net/9aLc0mg
我想要实现的目标 racer-offset 是为了让用户可以设置图像可以以 px 为单位移动多远。偏移量管理偏移量。 Speed-racer 告诉我们图像在滚动过程中移动的速度。我的问题是它不会停止。
我有一个简单的自动换行函数,它接受一个长字符串作为输入,然后将该字符串分成更小的字符串,并将它们添加到一个数组中,以便稍后输出。现在最后一两个字没有输出。这是主要问题。但是,我还想改进功能。我知道这有
我试图在使用每个 slider 之前禁用“下一步”按钮,我不确定为什么在单击不再是 class="not-clicked"的同一个 slider 时取消禁用该按钮. JSFiddle: (这里看起来有
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 8 年前。 如何让程序输出所有信息? IT
On this page ,在“生活”下有一个带有自动生成的子菜单的菜单。子菜单存在一些问题(它会闪烁并改变大小——如果你滚动它就会看到)。我需要以某种方式覆盖它当前正在读取的 css 并使其统一。
我是一名优秀的程序员,十分优秀!