誤検知と思われるコード分析警告が表示されます。
CA1812 : Microsoft.Performance : 'MyClass.MyPrivateClass' は、明らかにインスタンス化されていない内部クラスです。その場合は、アセンブリからコードを削除します。このクラスに静的メソッドのみを含めることを意図している場合は、プライベート コンストラクターを追加して、コンパイラが既定のコンストラクターを生成しないようにすることを検討してください。
この警告を取り除くにはどうすればよいですか? 他の方法で回避できないと確信していない限り、警告を抑制しないことを好みます。
クラスは次のようになります。
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 };
}
この使用はインスタンス化としてカウントされませんか?