CA0001: ссылка на объект не установлена на экземпляр объекта
Пожалуйста, прочитайте вопрос сначала, прежде чем пометить его как дубликат для "Ссылка на объект не установлена на экземпляр объекта"
Я запускаю сборку с 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.
Ошибка происходит, так как я включил NDepend Analysis в SonarQube. Я попытался исключить файл из анализа, добавив его в список исключений исходного файла в области анализа SonarQube. Когда это не сработало, я добавил исключение в файл csproj:
<Compile Include="Wrappers\Helper\ReportPrintingOrderDriver.cs" >
<!-- Exclude the file from analysis -->
<SonarQubeExclude>true</SonarQubeExclude>
</Compile>
Но, к сожалению, ошибка все еще появляется. Когда я запускаю анализ кода Visual Studio для проекта, появляется та же ошибка. Так что я думаю, что это не имеет ничего общего с NDepend. После выключения всех правил NDepend, ошибка все еще не завершается сборкой.
Служба поддержки NDepend направила меня на следующий веб- сайт
Класс, который он не может проанализировать, начинается так:
public class ReportPrintingOrderDriver<TInnerNode, TDataNode> where TDataNode : IComparable<TDataNode>, IMergeable<TDataNode>
{
...
}
Любые предложения, как избавиться от этой ошибки?
1 ответ
У меня нет способа исправить эту ошибку. Но есть обходной путь. Это известная проблема анализа кода Microsoft, которая возникает, когда универсальный класс содержит и использует интерфейс. Проблема может быть найдена в Microsoft Connect. Связанная проблема содержит Приложение, которое воспроизводит проблему.
Обходной путь - извлечь интерфейс и определить его вне универсального класса.