如何将CsvHelper模型属性属性赋予控件编号解析



这是与CsvHelper一起使用的模型中的一个属性。

[Name("z")]
public decimal Z {get; set;}

尝试导入数据时出现问题。有时该字段的输入数据采用类似于0.00E+00的指数形式,有时看起来类似于280.11。如何控制解析?我怀疑它涉及NumberStyles,但不清楚如何使用它。

我可以对模型上的属性执行此操作吗?还是必须创建一个自定义类型转换器?

有几种方法可以做到这一点,最简单的可能是使用attirbute

[NumberStyles(NumberStyles.Number | NumberStyles.AllowExponent)]
public decimal Z { get; set; }

public class FooMap : ClassMap<Foo>
{
public FooMap()
{
Map(m => m.z).TypeConverterOption.NumberStyles(NumberStyles.Number | NumberStyles.AllowExponent);
}
}

或者,如果你真的陷入困境,你可以写自己的TypeConverter