How do I pass an IFormatProvider to a StreamWriter?
Specifically I want to create a
new StreamWriter("myfile.txt", CultureInfo.InvariantCulture);
TextWriter and StringWriter have a parameter for that in the constructor, but StreamWriter does not.
The Property stringWriter.FormatProvider is readonly.
I could think of three workarounds that seem like bad solutions:
- Changing Thread.CurrentCulture: This is going to be in a library, so I'd rather not change any global settings, even temporarily.
- sw.WriteLine(InvariantCulture, , ): There are a lot of sw.WriteLine() over several functions. I'd really like to avoid messing with all of them.
- using a StringWriter first and then writing the string to a file: since the stream can get very big, this will incur a huge overhead.
Is there any way to specify a FormatProvider for StreamWriter? Based on Inheritance from TextWriter, the StreamWriter must have the means to handle this, if I could just set the property.