C'est un ancien, mais je voulais faire quelque chose de semblable aujourd'hui et a trouvé que les choses ont changé. Depuis .net 4.5, il y a un leaveOpen
argument:
public StreamReader( Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen )
Le seul problème est qu'il n'est pas évident à définir pour les autres paramètres. Voici un peu d'aide:
À partir de la page msdn pour le Constructeur StreamReader (Stream):
Ce constructeur initialise le codage de UTF8Encoding, l'
BaseStream propriété en utilisant le paramètre stream, et l'interne
taille de la mémoire tampon à 1024 octets.
Cela ne laisse detectEncodingFromByteOrderMarks
qui a en juger par le code source est - true
public StreamReader(Stream stream)
: this(stream, true) {
}
public StreamReader(Stream stream, bool detectEncodingFromByteOrderMarks)
: this(stream, Encoding.UTF8, detectEncodingFromByteOrderMarks, DefaultBufferSize) {
}
Ce serait bien si certains de ces paramètres par défaut ont été exposées, ou si les arguments sont facultatifs, de sorte que nous pourrions simplement préciser à ceux que nous voulons.