使用FileHelper格式化属性

Jag*_*uir 5 c# csv filehelpers

FileHelpers有一个很好的字段日期转换器:

[FieldConverter(ConverterKind.Date, "MM-dd-yyyy")] 
public DateTime MyDate;
Run Code Online (Sandbox Code Playgroud)

但FieldConverter不适用于属性.我必须处理使用属性的对象,所以我正在寻找这样的东西:

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

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

Dav*_*d C 4

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

但是,您可以做的是仅为导入/导出记录创建一个数据模型,该数据模型不绑定到域对象。该数据模型可以具有字段而不是属性。

因此,如果您有 Customers,它是域持久数据对象,您可以创建类似 CustomerRecord 的东西,它将 Customer 作为构造函数参数并复制所有数据(或使用 Automapper 之类的东西轻松为您复制值),那么只需使用文件记录数据模型来执行文件帮助器操作,而不是域模型。

这看起来像是额外的工作,确实如此,但它还将域模型与文件操作解耦,这是一种良好的可维护性设计模式。