Я пытаюсь убедиться, что мой код следует правильному удалению объектов, поэтому я применяю эти правила как ошибки. Но у меня проблемы с этим разделом кода
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, поскольку я не удаляю объект, но если я удаляю комментарий, он говорит, что я удаляю более одного раза.
Что еще относится к удалению объекта? или я просто делаю это неправильно при работе с несколькими потоками?