นี่คือสิ่งเก่า แต่ฉันต้องการทำสิ่งที่คล้ายกันในวันนี้และพบว่าสิ่งต่าง ๆ มีการเปลี่ยนแปลง ตั้งแต่. net 4.5 มีleaveOpen
อาร์กิวเมนต์:
public StreamReader( Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen )
ปัญหาเดียวคือมันไม่ชัดเจนว่าจะตั้งค่าสำหรับพารามิเตอร์อื่น ๆ นี่คือความช่วยเหลือบางส่วน:
จากหน้า msdnสำหรับ StreamReader Constructor (สตรีม):
ตัวสร้างนี้เริ่มต้นการเข้ารหัสเป็น UTF8Encoding คุณสมบัติ BaseStream โดยใช้พารามิเตอร์สตรีมและขนาดบัฟเฟอร์ภายในถึง 1024 ไบต์
แค่ทิ้งไว้detectEncodingFromByteOrderMarks
ซึ่งการตัดสินโดยซอร์สโค้ดคือtrue
public StreamReader(Stream stream)
: this(stream, true) {
}
public StreamReader(Stream stream, bool detectEncodingFromByteOrderMarks)
: this(stream, Encoding.UTF8, detectEncodingFromByteOrderMarks, DefaultBufferSize) {
}
มันจะดีถ้าค่าเริ่มต้นเหล่านั้นถูกเปิดเผยหรือหากมีข้อโต้แย้งเป็นตัวเลือกเพื่อให้เราสามารถระบุสิ่งที่เราต้องการ