"使用する"ブロックが私のあらかじめ作成されたオブジェクトを改ざんすると、私は本当に迷惑になります。あらかじめ作成されたストリームと "使用"ブロック
System.ArgumentExceptionの:私は、コードのこの部分を持っている
class Asset { public Stream FileStream { get; set; } public Asset(string fileName) { FileStream = ...open a file stream...; } } // Somewhere else Asset asset = new Asset("file.txt"); using (var reader = new StreamReader(asset.FileStream)) { //blah blah blah } // Somewhere else else using (var reader2 = new StreamReader(asset.FileStream))
=>は、この例外をスロー流れが読めませんでした。
Visual Studioのステップバイステップで、asset.FileStreamが最初の "using"ブロックの後に配置されていることがわかりました。
彼の命を救うために私を助けてください:(( がどのように私は、ストリームからクローンストリームを作成することができます
私は簡単だと思いますあなたがそれを通過する前にストリームを処理しないでください...あなたが使用するブロックを使用すると、それはDiですReaderをスプーンし、ストリームを廃棄します。 –