我正在使用CsvHelper将一个类序列化为 csv 文件 - 直到这里一切正常。
现在我正在尝试找到一种方法将类的枚举属性转换为它们在 csv 中的 int 值,以便以后可以使用 CSV 进行批量插入。
我在 CsvHelper 中找到了 EnumConverter 类,但我不知道如何正确使用它,因为我所有的尝试都失败了。
这是我的映射类代码
public sealed class MyMapping : CsvClassMap<TradingCalendarException>
{
public MyMapping()
{
EnumConverter enumConverter = new EnumConverter(typeof(CalendarExceptionEntityType));
Map(m => m.ExceptionEntityType).Index(0).Name("EXCEPTION_ENTITY_TYPE").TypeConverter(enumConverter);
Map(m => m.ExceptionEntityIdentifier).Index(1).Name("EXCEPTION_ENTITY_IDENTIFIER");
Map(m => m.OptionType).Index(2).Name("OPTION_TYPE");
Map(m => m.StartDatetime).Index(3).Name("EXCEPTION_START_DATETIME");
Map(m => m.EndDatetime).Index(4).Name("EXCEPTION_END_DATETIME");
Map(m => m.DataSourceType).Index(5).Name("DATA_SOURCE_TYPE");
Map(m => m.Description).Index(6).Name("DESCRIPTION");
}
}
和写作部分
using (StreamWriter file = new StreamWriter(filePath, false, Encoding.UTF8))
{
CsvWriter writer = new CsvWriter(file);
MyMapping mapping = new MyMapping();
writer.Configuration.RegisterClassMap(mapping);
writer.WriteRecords(calendarExceptionList);
}
映射的其余部分(索引和命名)正在工作,只是 EnumConverter 没有做任何更改。
我在网上没有找到任何例子。
谢谢!