2011-05-26 50 views
1

我使用FileHelpers来创建固定长度的文件。在我的模型中,我有一个需要以0000.00格式输出的double。无论如何,我可以用FileHelpers本身指定它,还是需要将模型更改为字符串,并在创建模型时执行.ToString(my_format)?使用FileHelpers输出格式化

回答

2

您是否尝试过使用FileHelpers库中的FieldConverter

也许是这样的。这是未经测试,但它可能让你工作路径上:

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] 公共类MyRecordType { [FieldFixedLength (7)] [FieldConverter(ConverterKind.Double,“0000.00”)] public double MyDouble; }

但我认为这将强制执行0000.00阅读和写作,我不知道这是否适用于您的方案。

+0

其他方式你只是实现StringToField方法:) – mikus 2014-06-04 19:21:18