我试图确保我的编码遵循对象的正确处理,因此我将这些规则作为错误执行。但是我在这段代码中遇到了麻烦
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Xml;
class MyClass
{
public String ToXml()
{
var objSerializer =
new DataContractSerializer(GetType());
var objStream = new MemoryStream();
StreamReader objReader;
String strResult;
try
{
// Serialize the object
objSerializer.WriteObject(objStream, this);
// Move to start of stream to read out contents
objStream.Seek(0, SeekOrigin.Begin);
objReader = new StreamReader(objStream);
try
{
// Read Contents into a string
strResult = objReader.ReadToEnd();
}
finally
{
objReader.Dispose();
}
}
finally
{
if (objStream != null)
{
// objStream.Dispose();
}
}
return strResult;
}
}
如果我注释掉objStream.Dispose()
我会得到 CA2000,因为我没有处理该对象,但是如果我删除该注释,它会说我不止一次处理。
还有什么是处理对象?还是我在处理多个流时做错了?