Я получаю предупреждение анализа кода, которое кажется ложным.False Предупреждение CA1812: «внутренний класс, который, по-видимому, никогда не был создан ...»
CA1812 : Microsoft.Performance : 'MyClass.MyPrivateClass' is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static methods, consider adding a private constructor to prevent the compiler from generating a default constructor.
Как избавиться от этого предупреждения? Я предпочитаю не подавлять предупреждения, если я не уверен, что в противном случае я не мог бы этого избежать.
Классы выглядеть следующим образом:
namespace Some.Namespace
{
public class MyClass
{
private class MyPrivateClass
{
public int Id { get; set; }
public ModelObject { get; set; }
}
}
}
Я использую это так:
private IQueryable<MyPrivateClass> GetMyPrivateClasses()
{
return this.Repository().All()
.Select(m => new MyPrivateClass { Id = m.Id, ModelObject = m };
}
ли это использование не считается конкретизацией?
Является ли 'GetMyPrivateClasses()' сам определенно называется? (Не считается, если он вызван только косвенно из другого частного метода, который никогда не назывался сам) –
@MatthewWatson Да, определенно. Мой код работает правильно, и этот конкретный метод является основной частью моего отчета, так что да. –
Даже если он вызывается, неясно, будет ли экземпляр создаваться, поскольку этот метод возвращает запрос без его выполнения (например, с помощью 'ToList'). –