IFormatProvider を StreamWriter に渡すにはどうすればよいですか?
具体的には、
new StreamWriter("myfile.txt", CultureInfo.InvariantCulture);
TextWriter と StringWriter には、コンストラクターにそのためのパラメーターがありますが、StreamWriter にはありません。
プロパティ stringWriter.FormatProvider は読み取り専用です。
悪い解決策のように思える 3 つの回避策を考えることができます。
- Thread.CurrentCulture の変更: これはライブラリにあるので、一時的であってもグローバル設定を変更したくありません。
- sw.WriteLine(InvariantCulture, , ): いくつかの関数に対して多くの sw.WriteLine() があります。それらすべてを台無しにすることは本当に避けたいです。
- 最初に StringWriter を使用してから、文字列をファイルに書き込みます。ストリームが非常に大きくなる可能性があるため、これには大きなオーバーヘッドが発生します。
StreamWriter に FormatProvider を指定する方法はありますか? TextWriter からの継承に基づいて、StreamWriter には、プロパティを設定するだけでこれを処理する手段が必要です。