- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 LINQ 对象,其中添加了一个附加方法。该类没有一次性属性或方法,但 FxCop 引发错误“拥有一次性字段的类型应该是一次性的”并引用该类。
到目前为止我已经减少了代码,但仍然收到错误:
partial class WikiPage
{
public PagePermissionSet GetUserPermissions(Guid? userId) {
using (WikiTomeDataContext context = new WikiTomeDataContext()) {
var permissions =
from wiki in context.Wikis
from pageTag in context.VirtualWikiPageTags
select new {};
return null;
}
}
}
但是,如果我删除任一 from 子句,FxCop 就会停止给出错误:
partial class WikiPage
{
public PagePermissionSet GetUserPermissions(Guid? userId) {
using (WikiTomeDataContext context = new WikiTomeDataContext()) {
var permissions =
from pageTag in context.VirtualWikiPageTags
select new {};
return null;
}
}
}
或者
partial class WikiPage
{
public PagePermissionSet GetUserPermissions(Guid? userId) {
using (WikiTomeDataContext context = new WikiTomeDataContext()) {
var permissions =
from wiki in context.Wikis
select new {};
return null;
}
}
}
PagePermissionSet 不是一次性的。
这是误报吗?或者 LINQ 代码是否以某种方式在类上生成一次性字段?如果不是误报,FxCop 建议我实现 IDisposable 接口(interface),但我会在 Dispose 方法中做什么?
编辑:完整的 FxCop 错误是:
"Implement IDisposable on 'WikiPage' because it creates members of the following IDisposable types: 'WikiTomeDataContext'. If 'WikiPage' has previously shipped, adding new members that implement IDisposable to this type is considered a breaking change to existing consumers."
编辑2:这是引发错误的反汇编代码:
public PagePermissionSet GetUserPermissions(Guid? userId)
{
using (WikiTomeDataContext context = new WikiTomeDataContext())
{
ParameterExpression CS$0$0001;
ParameterExpression CS$0$0003;
var permissions = context.Wikis.SelectMany(Expression.Lambda<Func<Wiki, IEnumerable<VirtualWikiPageTag>>>(Expression.Property(Expression.Constant(context), (MethodInfo) methodof(WikiTomeDataContext.get_VirtualWikiPageTags)), new ParameterExpression[] { CS$0$0001 = Expression.Parameter(typeof(Wiki), "wiki") }), Expression.Lambda(Expression.New((ConstructorInfo) methodof(<>f__AnonymousType8..ctor), new Expression[0], new MethodInfo[0]), new ParameterExpression[] { CS$0$0001 = Expression.Parameter(typeof(Wiki), "wiki"), CS$0$0003 = Expression.Parameter(typeof(VirtualWikiPageTag), "pageTag") }));
return null;
}
}
编辑3:似乎确实有一个包含对 DataContext 的引用的闭包类。这是它的反汇编代码:
[CompilerGenerated]
private sealed class <>c__DisplayClass1
{
// Fields
public WikiTomeDataContext context;
// Methods
public <>c__DisplayClass1();
}
最佳答案
我的猜测是,两个 From
子句生成对 SelectMany
的调用,并在数据上下文上使用闭包。闭包的实例有一个数据上下文字段,这会导致 FxCop 警告。这没什么好担心的。
您的数据上下文只有一个实例,您可以通过 using block 来清理它。由于闭包没有终结器,因此 FxCop 警告中没有性能或安全含义。
关于linq - 为什么 FxCop 在没有一次性字段的类上引发错误 "Types that own disposable fields should be disposable"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1219086/
我熟悉 MSDN list ,但我想要一个按代码排序的列表。我们的许多开发人员无法方便地访问互联网,如果我能为他们提供离线的完整警告列表,那就太好了。 我希望它们按警告代码排序,因为这是它们在 Fxc
我将使用 fxcop 分析同一个 dll 的两个不同版本。 我只想显示这两个报告之间的差异。 有谁知道这是否可能? 谢谢你的时间。 最佳答案 是的,这是可能的,但是没有可用的内置工具。一种相当简单的方
我们所有的开发人员都使用 VS2010 专业版,因此无法进行代码分析。我希望他们在 checkin 之前使用 FxCop 来分析代码。我已经通过了规则并禁用了其中的一些规则并添加了其中的一些。我希
您希望看到哪些可定义的静态代码检查规则添加到 FxCop 和/或宪兵队? 您为什么希望看到添加的规则,例如有什么好处等? 你的规则如何实现? 最佳答案 我想很快地定义和实现我自己的规则。我为 FxCo
FxCop 为字段分配默认默认值时(此处为 false 为 bool): Resolution : "'Bar.Bar()' initializes field 'Bar.foo'
我们正在使用 FxCop,它会产生太多我们喜欢的误报。例如,如果使用反射调用私有(private)方法,则该方法被报告为可能未使用 - 可以理解,我们使用 SuppressMessage 属性显式抑制
FxCop 有一个 rule (CA1726)检查首选术语。这会查找诸如“Dont”之类的词,并告诉您将它们替换为“Do not”等更好的词。通常这很好,但是它反对的术语之一是“标志”。在我们公司,业
我在 TeamCity 8.0.6(内部版本 27767)中添加了一个构建步骤,以针对特定的 c# 项目程序集执行 FxCop。 当从 VS 2013 中运行 FxCop 并设置 MinimumRec
问题是什么? 我正在尝试安装 FxCop 10。要安装它,需要 Microsoft Windows SDK 7.1。我安装了 SDK。现在,要安装 FxCop,我必须运行 FxCopSetup.exe
我正在试用 FxCop(目前通过 UI,不包括在 CruiseControl.NET 等中)并且遇到了一些问题。拼写检查器似乎不喜欢我客户的公司名称和产品名称,它要求我: Correct the sp
希望在程序上使用静态调用图分析来发现哪些问题? FxCop 使用静态调用图分析,使用这种技术发现了什么问题? http://msdn.microsoft.com/library/bb429476.as
我尝试在精简版应用程序上使用 Microsoft FXCop 1.36 版,但在分析项目时出现以下错误。 The following referenced assembly could not be
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 8年前关闭。 Improve t
我最近开始在 Visual Studio 中的项目中使用代码分析。我创建了一个自定义规则集,用于我的所有项目,其中包括两个 Microsoft 定义的规则集。我一直在努力将 FxCop 集成到 CI
我有捕获所有内容并将其记录的代码。我通常不这样做,但是我正在编写一个HTTP处理程序,并希望返回适当的HTTP代码。无论如何,我将以下内容放在方法的顶部: [SuppressMessage("Micr
是否可以从所有FxCop分析中排除完整的 namespace ,同时仍使用SuppressMessageAttribute分析其余的程序集? 在我目前的情况下,我有一堆由LINQ to SQL生成的类
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我正在使用以下配置的构建服务器上构建和分析示例 C# 项目: Jenkins 1.630; SonarQube 5.3 及所有更新; FxCop 10.0 我在 Jenkins Job 中添加了以下步
我正在尝试通过 Sonar-runner 运行 FxCopCmd 10.0。但是,FxCop 返回错误,即使它生成了分析报告。由于它返回错误,因此 sonar-runner 不会发出报告。 为了隔离问
运行 FXCop 时出现以下错误: CA1800 : Microsoft.Performance : 'obj', a variable, is cast to type 'Job' multiple
我是一名优秀的程序员,十分优秀!