Ich versuche, einige Daten an einen Stream anzuhängen. Dies funktioniert gut mit FileStream
, aber nicht mit MemoryStream
aufgrund der festen Puffergröße.
Die Methode, die Daten in den Stream schreibt, wird von der Methode getrennt, die den Stream erzeugt (ich habe es im folgenden Beispiel sehr vereinfacht). Die Methode, die den Stream erstellt, ist sich der Länge der Daten nicht bewusst, die in den Stream geschrieben werden sollen.
%Vor% Eine Idee, die ich hatte, war, eine erweiterbare MemoryStream
an die Funktion zu senden und dann die zurückgegebenen Daten an die vorhandenen Daten anzufügen.
Gibt es bessere (effizientere) Lösungen?
Eine mögliche Lösung besteht darin, die Kapazität von MemoryStream
nicht zu begrenzen.
Wenn Sie nicht im Voraus wissen, wie viele Bytes Sie insgesamt schreiben müssen, erstellen Sie ein MemoryStream
mit unspezifizierter Kapazität und verwenden Sie es für beide Schreibvorgänge.
Das wird zweifellos weniger performant sein als das Initialisieren eines MemoryStream
von einem byte[]
, aber wenn Sie weiterhin in den Stream schreiben müssen, glaube ich, dass es Ihre einzige Option ist.