CA0001:未将对象引用设置为对象的实例

时间:2016-02-23 11:32:06

标签: c# visual-studio sonarqube code-analysis

请先阅读问题,然后再将其标记为重复#34;对象引用未设置为对象的实例"

我使用SonarQube运行构建。我收到以下错误:

CA0001 : Rule=Microsoft.Design#CA1011, Target=Company.Project.Service.Report.Wrappers.Helper.ReportPrintingOrderDriver`2.#DrivePrintingProcess(Company.Product.Service.Contracts.Report.CommonExportReportRequest,Company.Project.Common.Containers.LIHierarchy`3<!0,!1,System.Int32>,Company.Project.Service.Report.Wrappers.Helper.ReportPrintingOrderDriver`2<!0,!1>+IReportPrintingOrderDriven) : Object reference not set to an instance of an object.

自从我在SonarQube中打开NDepend Analysis后发生错误。 我尝试将文件从Analysis中排除,将其添加到SonarQube Analysis范围中的源文件排除项中。当这不起作用时,我在csproj文件中添加了一个排除项:

<Compile Include="Wrappers\Helper\ReportPrintingOrderDriver.cs" >
        <!-- Exclude the file from analysis -->
       <SonarQubeExclude>true</SonarQubeExclude>
</Compile>

但不幸的是,错误仍然不断出现。当我为项目运行Visual Studio代码分析时,会出现相同的错误。所以我认为它与NDepend无关。关闭所有NDepend规则后,错误仍然无法构建。

NDepend支持向我介绍了以下WebSite

无法分析的课程如下所示:

public class ReportPrintingOrderDriver<TInnerNode, TDataNode> where TDataNode : IComparable<TDataNode>, IMergeable<TDataNode>
    {
      ...
    }

有关如何摆脱此错误的任何建议吗?

1 个答案:

答案 0 :(得分:1)

我无法修复此错误。但有一个解决方法。当泛型类包含并使用接口时,会发生Microsoft Code Analysis的已知问题。问题可以在Microsoft Connect找到。链接的问题包含一个附件,可以重现问题。

解决方法是提取接口并在泛型类之外定义它。