建议代码分析,多次处置

时间:2014-10-21 09:55:54

标签: c# .net code-analysis

我只是寻找一些比我更有经验的人的建议(不会很难)。

以下代码......

        XmlSerializer serializer = new XmlSerializer(typeof(Installation));
        using (var sw = new StringWriter()) {
            using (var xw = XmlWriter.Create(sw)) {
                serializer.Serialize(xw, Installation);
            }
            xmlResult = sw.ToString();
        }

在代码分析中有以下报告......

  

CA2202多次弃置物品对象' sw'可   方法不止一次处理   ' Views_Commissioning_installationSubsidyForm.SaveInstall(字符串)&#39 ;.至   避免生成不应调用的System.ObjectDisposedException   在物体上多次处理:线条:   766 nc1_DealerPortal installationSubsidyForm.aspx.cs 766

任何人都可以解释我是如何处理' sw'不止一次?我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

StringWriter将由XmlWriter处理,因此,通过使用2个使用语句,它将被处理两次更改代码,如下所示:

XmlSerializer serializer = new XmlSerializer(typeof(Installation));
var sw = new StringWriter()) 
using (var xw = XmlWriter.Create(sw)) 
{
    serializer.Serialize(xw, Installation);
    xmlResult = sw.ToString();
}

答案 1 :(得分:-1)

试试这个,对我没有警告:

  string xmlResult;
  Installation installation = new Installation();
  XmlSerializer serializer = new XmlSerializer(typeof(Installation));
  using (var sw = new StringWriter())
  {
      var xw = XmlWriter.Create(sw);
      serializer.Serialize(xw, installation);
      xmlResult = sw.ToString();
  }