Це стара, але я хотів сьогодні зробити щось подібне і виявив, що все змінилося. Оскільки .net 4.5 є leaveOpen
аргумент:
public StreamReader( Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen )
Єдина проблема полягає в тому, що не зовсім очевидно, що встановити для інших параметрів. Ось деяка допомога:
Від на сторінці MSDN для StreamReader Конструктора (потік):
Цей конструктор ініціалізує кодування до UTF8Encoding, властивості BaseStream за допомогою параметра потоку та внутрішнього розміру буфера до 1024 байт.
Це просто залишає detectEncodingFromByteOrderMarks
який судячи з вихідний код єtrue
public StreamReader(Stream stream)
: this(stream, true) {
}
public StreamReader(Stream stream, bool detectEncodingFromByteOrderMarks)
: this(stream, Encoding.UTF8, detectEncodingFromByteOrderMarks, DefaultBufferSize) {
}
Було б добре, якби деякі з цих замовчувань були викриті або якщо аргументи були необов'язковими, щоб ми могли просто вказати ті, які ми хочемо.