私は、サードパーティの .NET ライブラリを使用する VB.net アプリケーションを作成しています (ただし、必要に応じて C# で回答できますが、問題ありません)。特に、このライブラリの 1 つのメソッドは IO.Stream を入力として取り (とりわけ)、その処理の結果をそのストリームに書き込みます。私の問題は、メソッドがストリームに書き込んだ後にストリームを閉じることです。そのため、ストリームに書き込んだデータを読み戻すことができません!
より具体的に言うと、もちろん、ストリームが FIeStream の場合、ディスクにデータを書き込むため機能しますが、データをメモリに直接読み取りたい場合はどうすればよいでしょうか? 私はMemoryStreamを使用してみましたが、私が言ったように、メソッドがストリームを返すと、ストリームはすでに閉じられており、そこから何も読み取ることができません:(
編集:「usr」が提案したものと同様のことを行うことで解決しました。誰かが必要な場合のコードは次のとおりです。
Imports System.IO
Public Class CloseHijackedMemoryStream
Inherits MemoryStream
Public Overrides Sub Close()
'We don't do anything, so the stream is still open
End Sub
Public Sub RealClose()
MyBase.Close()
End Sub
End Class