Code Anlysis Rule CA2000 / CA2202

Я пытаюсь убедиться, что мое кодирование соответствует правильному удалению объектов, поэтому я применяю эти правила как ошибки. Но у меня возникли проблемы с этим разделом кода

<code>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;
    }
}
</code>

Если я закомментируюobjStream.Dispose() Я получаю CA2000, поскольку я не удаляю объект, но если я удаляю комментарий, он говорит, что я удаляю несколько раз.

Что еще выбрасывает объект? или я просто делаю это неправильно при работе с несколькими потоками?

Ответы на вопрос(3)

Ваш ответ на вопрос