StreamWriter и IFormatProvider

Как передать IFormatProvider в StreamWriter?

В частности, я хочу создать
new StreamWriter("myfile.txt", CultureInfo.InvariantCulture);

TextWriter и StringWriter имеют для этого параметр в конструкторе, а StreamWriter — нет.
Свойство stringWriter.FormatProvider доступно только для чтения.

Я мог бы придумать три обходных пути, которые кажутся плохими решениями:

  • Изменение Thread.CurrentCulture :Это будет в библиотеке, поэтому я бы не стал менять какие-либо глобальные настройки, даже временно.
  • sw.WriteLine (InvariantCulture,, ):Существует множество sw.WriteLine ()для нескольких функций. Я действительно хотел бы избежать возиться со всеми ими.
  • используя сначала StringWriter, а затем записывая строку в файл :, поскольку поток может стать очень большим, это повлечет за собой огромные накладные расходы.

Есть ли способ указать FormatProvider для StreamWriter? Основываясь на наследовании от TextWriter, StreamWriter должен иметь средства для обработки этого, если бы я мог просто установить свойство.

18
задан Benoit Blanchon 27 June 2014 в 10:01
поделиться