C# 为什么Microsoft.NetCore.Analyzers CA2000中的分析结果存在差异
我先前的问题太抽象,而且被否决了。你可以在 我想从DAC工厂退回两件物品。即加载的数据集和使用的参数列表。这里有两个简化的实现。其中只有一个触发CA2000。 Tuple和POCO有什么特别之处C# 为什么Microsoft.NetCore.Analyzers CA2000中的分析结果存在差异,c#,idisposable,fxcop,C#,Idisposable,Fxcop,我先前的问题太抽象,而且被否决了。你可以在 我想从DAC工厂退回两件物品。即加载的数据集和使用的参数列表。这里有两个简化的实现。其中只有一个触发CA2000。 Tuple和POCO有什么特别之处 class Factory { public Tuple<DataSet, IReadOnlyDictionary<string, object>> CreateWrapped() { var ds = new DataSet();//why do
class Factory
{
public Tuple<DataSet, IReadOnlyDictionary<string, object>> CreateWrapped()
{
var ds = new DataSet();//why does FxCop complains CA2000 here?
var p = new Dictionary<string, object>();
return Tuple.Create(ds, (IReadOnlyDictionary<string, object>)p);
}
public PocoResult CreatePoco()
{
var ds = new DataSet();//why does FxCop happy here?
var p = new Dictionary<string, object>();
return new PocoResult(ds, p);
}
}
类工厂
{
公共元组CreateWrapped()
{
var ds=new DataSet();//为什么FxCop在这里抱怨CA2000?
var p=新字典();
返回Tuple.Create(ds,(IReadOnlyDictionary)p);
}
公共PocoResult CreatePoco()
{
var ds=new DataSet();//为什么FxCop在这里很开心?
var p=新字典();
返回新的PocoResult(ds,p);
}
}
下面是POCO的定义。以防你认为这很重要
class PocoResult
{
public PocoResult(DataSet dataSet, IReadOnlyDictionary<string, object> selectParameters)
{
DataSet = dataSet;
SelectParameters = selectParameters;
}
public DataSet DataSet { get; }
public IReadOnlyDictionary<string, object> SelectParameters { get; }
}
类PocoResult
{
公共PocoResult(数据集,IREADONLYDICTIONAL selectParameters)
{
数据集=数据集;
SelectParameters=SelectParameters;
}
公共数据集数据集{get;}
公共IReadOnlyDictionary SelectParameters{get;}
}
是否有另一条规则规定,PocoResult
应该实现IDisposable
?我不知道我们应该寻找它。“错误列表”窗口中没有任何其他条目。使用PocoDisposable也会让分析器感到高兴。