To jest stara, ale chciałem zrobić dziś coś podobnego i stwierdziłem, że wszystko się zmieniło. Od .net 4.5 istnieje leaveOpen
argument:
public StreamReader( Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen )
Jedynym problemem jest to, że nie jest do końca oczywiste, co ustawić dla innych parametrów. Oto pomoc:
Ze strony msdn dla StreamReader Constructor (Stream):
Ten konstruktor inicjuje kodowanie do UTF8Encoding, właściwość BaseStream przy użyciu parametru stream i wewnętrzny rozmiar buforu do 1024 bajtów.
Że właśnie liście detectEncodingFromByteOrderMarks
, który sądząc przez kod źródłowy jesttrue
public StreamReader(Stream stream)
: this(stream, true) {
}
public StreamReader(Stream stream, bool detectEncodingFromByteOrderMarks)
: this(stream, Encoding.UTF8, detectEncodingFromByteOrderMarks, DefaultBufferSize) {
}
Byłoby miło, gdyby niektóre z tych wartości domyślnych zostały ujawnione lub gdyby argumenty były opcjonalne, abyśmy mogli po prostu określić te, które chcemy.