613 Stimmen

Wie erhält man eine Zeichenkette aus einem MemoryStream?

Wenn man mir eine MemoryStream von dem ich weiß, dass es mit einer String wie bekomme ich eine String wieder raus?

1 Stimmen

Ich bin mir nie ganz sicher, ob reader.close immer erforderlich ist. Ich habe in der Vergangenheit Probleme gehabt, so dass ich in der Regel immer tun, nur um auf der sicheren Seite zu sein.

1voto

Ich muss eine Klasse integrieren, die einen Stream benötigt, um darauf zu schreiben:

XmlSchema schema;
// ... Use "schema" ...

var ret = "";

using (var ms = new MemoryStream())
{
    schema.Write(ms);
    ret = Encoding.ASCII.GetString(ms.ToArray());
}
//here you can use "ret"
// 6 Lines of code

Ich erstelle eine einfache Klasse, die helfen kann, Codezeilen für die Mehrfachnutzung zu reduzieren:

public static class MemoryStreamStringWrapper
{
    public static string Write(Action<MemoryStream> action)
    {
        var ret = "";
        using (var ms = new MemoryStream())
        {
            action(ms);
            ret = Encoding.ASCII.GetString(ms.ToArray());
        }

        return ret;
    }
}

dann können Sie das Beispiel durch eine einzige Codezeile ersetzen

var ret = MemoryStreamStringWrapper.Write(schema.Write);

-1voto

Harlin Acero Punkte 39

Verwenden Sie nur die Methode Convert.ToBase64String

Convert.ToBase64String(inputStream.ToArray());

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X