【发布时间】:2019-04-25 16:51:13
【问题描述】:
尝试将 GTFS 导入到我的自定义类型。 C# 字段是 TimeSpan,我正在尝试使用内联 TimeSpanConverter 并且缺少一些东西。我不需要花哨的 JSON 示例。只需要知道如何使用内联转换器。
我已经研究过,寻找示例,尝试了一个继承自 TimeSpanConverter 的类。还没有为 jason complexe 数据类型做好准备,只是一个简单的内联字符串 (08:00:00) 到导入时的 TimeSpan
var timeSpanConverter = new CsvHelper.TypeConversion.TimeSpanConverter();
Map(m => m.trip_id).Name("trip_id");
Map(m => m.arrival_time).Name("arrival_time").ConvertUsing(timeSpanConverter.ConvertFromString());
Map(m => m.departure_time).Name("departure_time");
类字段是
公共时间跨度到达时间{获取;放; } 公共时间跨度离开时间{得到;放; }
失败的行是 Map(m => m.arrival_time).Name("arrival_time").ConvertUsing(timeSpanConverter.ConvertFromString());
错误是: SCS7036 没有给出与“TimeSpanConverter.ConvertFromString(string, IReaderRow, MemberMapData)”所需的形参“text”相对应的参数
希望有正确的语法来推动我的努力。
提前谢谢大家,
史蒂夫
【问题讨论】:
-
如果您的 CSV 有一个字符串是
Timespan并且您的类属性是Timespan,您不需要做任何事情。 CsvHelper 将使用TimeSpanConverter为您转换它。 CsvHelper 已经为int、DateTime和TimeSpan等类注册了默认转换器。如果你想改变默认转换器,你可以使用.TypeConverter<TimeSpanConverter>()。
标签: c# inline converters csvhelper