Что является причиной «CA2202: не размещать объекты несколько раз» в этом коде и как я могу выполнить рефакторинг?

У меня есть функция ниже, которая используется для сериализации объекта без добавления декларации XML. Я только что открыл проект, содержащий его, Visual Studio 2012, и Code Analysis предлагает предупреждение «CA2202: не утилизировать объекты несколько раз».

Теперь в других случаях я исправил это предупреждение, удалив [объект]. Закрыть, который не был нужен, но в этом случае я не вижу, что нужно изменить, ипомощь для предупреждения в то время как точность не совсем информативна относительно того, как это вызвано или как это исправить.

Что именно вызывает предупреждение и как я могу изменить его, чтобы избежать рефакторинга?

''' <summary>
''' Serialize an object without adding the XML declaration, etc.
''' </summary>
''' <param name="target"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Shared Function SerializeElementToText(Of T As New)(target As T) As String
    Dim serializer As New XmlSerializer(GetType(T))
    'Need to serialize without namespaces to keep it clean and tidy
    Dim emptyNS As New XmlSerializerNamespaces({XmlQualifiedName.Empty})
    'Need to remove xml declaration as we will use this as part of a larger xml file
    Dim settings As New XmlWriterSettings()
    settings.OmitXmlDeclaration = True
    settings.NewLineHandling = NewLineHandling.Entitize
    settings.Indent = True
    settings.IndentChars = (ControlChars.Tab)
    Using stream As New StringWriter(), writer As XmlWriter = XmlWriter.Create(stream, settings)
        'Serialize the item to the stream using the namespace supplied
        serializer.Serialize(writer, target, emptyNS)
        'Read the stream and return it as a string
        Return stream.ToString
    End Using 'Warning jumps to this line
End Function

Я пробовал это, но это тоже не работает:

    Using stream As New StringWriter()
        Using writer As XmlWriter = XmlWriter.Create(stream, settings)
            serializer.Serialize(writer, target, emptyNS)
            Return stream.ToString
        End Using
    End Using 'Warning jumps to this line instead

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

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