使用FileHelper格式化属性

时间:2013-02-07 21:12:33

标签: c# csv filehelpers

FileHelpers为字段提供了一个不错的日期转换器:

[FieldConverter(ConverterKind.Date, "MM-dd-yyyy")] 
public DateTime MyDate;

FieldConverter不支持属性。我必须处理使用属性的对象,所以我正在寻找这样的东西:

[PropertyConverter(ConverterKind.Date, "MM-dd-yyyy")] 
public DateTime MyDate { get; set; }

如何使用属性执行此操作?

1 个答案:

答案 0 :(得分:4)

您不能将转换器与属性一起使用。

但是,您可以做的是为导入/导出记录创建一个数据模型,该记录不依赖于域对象。此数据模型可以包含字段而不是属性。

因此,如果你有例如客户,这是一个域持久数据对象,你可以创建类似CustomerRecord的东西,它将Customer作为构造函数参数并复制所有数据(或使用类似Automapper的东西为你复制值容易),然后只使用文件记录数据模型来执行filehelper操作,而不是域模型。

这似乎是额外的工作,它也是,但它也将您的域模型与文件操作分离,这是一种良好的可维护性设计模式。