Меня действительно раздражает, когда «использование» блока подделало мой предварительно созданный объект. У меня есть этот кусок кодаСозданный поток и блок «using»
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))
=> выдает это исключение:
System.ArgumentException: поток не был читаемым.
Отладка шаг за шагом в Visual Studio помогла мне узнать, что asset.FileStream был удален после первого «использования» блока.
Пожалуйста, помогите мне спасти его жизнь:? (( Как я могу создать поток клона из потока
Я думаю, что просто ответ - не располагайте поток до того, как вы пройдете с ним ... когда вы используете блок-блок, это будет Di поместите Reader и, в свою очередь, удалите поток. –