Existe alguma maneira de fechar um StreamWriter sem fechar seu BaseStream?

Meu principal problema é que quandousing chamadasDispose com umStreamWriter, também descarta oBaseStream (mesmo problema comClose)

Eu tenho uma solução alternativa para isso, mas como você pode ver, isso envolve copiar o fluxo. Existe alguma maneira de fazer isso sem copiar o fluxo?

O objetivo disso é obter o conteúdo de uma string (originalmente lida de um banco de dados) em um fluxo, para que o fluxo possa ser lido por um componente de terceiros.
NB: Não consigo alterar o componente de terceiros.

public System.IO.Stream CreateStream(string value)
{
    var baseStream = new System.IO.MemoryStream();
    var baseCopy = new System.IO.MemoryStream();
    using (var writer = new System.IO.StreamWriter(baseStream, System.Text.Encoding.UTF8))
    {
        writer.Write(value);
        writer.Flush();
        baseStream.WriteTo(baseCopy); 
    }
    baseCopy.Seek(0, System.IO.SeekOrigin.Begin);
    return baseCopy;
}

Usado como

public void Noddy()
{
    System.IO.Stream myStream = CreateStream("The contents of this string are unimportant");
    My3rdPartyComponent.ReadFromStream(myStream);
}

Idealmente, estou procurando um método imaginário chamadoBreakAssociationWithBaseStream, por exemplo.

public System.IO.Stream CreateStream_Alternate(string value)
{
    var baseStream = new System.IO.MemoryStream();
    using (var writer = new System.IO.StreamWriter(baseStream, System.Text.Encoding.UTF8))
    {
        writer.Write(value);
        writer.Flush();
        writer.BreakAssociationWithBaseStream();
    }
    return baseStream;
}

questionAnswers(5)

yourAnswerToTheQuestion