Форматирование вывода с помощью FileHelpers - PullRequest
3 голосов
/ 26 мая 2011

Я использую FileHelpers для создания файлов фиксированной длины. В моей модели у меня есть двойной, который должен быть выведен в формате 0000.00. В любом случае я могу указать это с помощью самого FileHelpers или мне нужно изменить мою модель на строку и выполнить .ToString (my_format) при создании модели?

1 Ответ

4 голосов
/ 27 мая 2011

Вы пытались использовать FieldConverter s из библиотеки FileHelpers?

Может быть, что-то вроде этого.Это не проверено, но может привести вас на рабочий путь:

using System;
using FileHelpers;

internal class MyDoubleConverter : ConverterBase
{
   public override string FieldToString(object from)
   {
      return ((double) from).ToString("0000.00");
   }
}

[FixedLengthRecord]
public class MyRecordType
{
   [FieldFixedLength(7)]
   [FieldConverter(typeof(MyDoubleConverter))]
   public double MyDouble;
}

Или это может сработать, и даже проще:

[FixedLengthRecord]
public class MyRecordType
{
   [FieldFixedLength(7)]
   [FieldConverter(ConverterKind.Double, "0000.00")]
   public double MyDouble;
}

Но я думаю, что это обеспечит 0000.00 для чтения и письма, и я не знаю, сработает ли это в вашем сценарии.

...