위양성으로 보이는 코드 분석 경고가 나타납니다.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'를 사용하여) 실행하지 않고 질의를 반환하기 때문에 클래스가 인스턴스화되는지 여부는 명확하지 않습니다. –