Пример рабочего кода:
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream, Encoding.UTF8, 1024, true);
writer.Write(content);
writer.Dispose();
writer.Write("no exception thrown"); // you can use this, but I've checked - it's not
// modifying the baseStream
// which is the expected behavior
writer.WriteLine("same story here); // -- II --
stream.Dispose();
writer.WriteLine("again no exceptions thrown");
writer.Write("for both methods");
Мне известно, что после удаления writer
, хотя исключений для использования WriteLine
или Write
не возникает, никаких реальных изменений не происходит. сделано для объекта stream
/ writer.BaseStream
.
Также следует отметить, что вызов Close
для writer
приведет к исключению после удаления объекта stream
. Почему возникает исключение, а не в описанных выше методах? Объект даже расположен?