В исходном CSV в поле указано время, но не дата. Есть ли способ передать значение даты и времени классу карты, чтобы мы могли просто объединить оба с помощью ConvertUsing?
Псевдокод:
csv.Configuration.RegisterClassMap<RhodesMoClassMap>("DateTime");
public MoClassMap(DateTime date)
{
Map(m => m.TimeLastTick).ConvertUsing(row =>
{
var timePart = row.GetField("Time last tick");
var combined = date + timePart;
return combinedDateTime;
});
}
Я видел несколько вопросов по этому поводу, но никаких примеров, и последняя нить, казалось, исчезла несколько лет назад.
ZZZZ, Z Company, 19:29:54 <необходимо добавить часть даты.
csv.Configuration.RegisterClassMap(new RhodesMoClassMap(date));
Я только что столкнулся с подобным, но когда я добавляю параметр ctor, я получаю System.InvalidOperationException: No public parameterless constructor found. at CsvHelper.ReflectionHelper.CreateInstanceDelegate(Type type, Object[] args) at CsvHelper.ReflectionHelper.CreateInstanceWithoutContractResolver(Type type, Object[] args) at CsvHelper.ReflectionHelper.CreateInstance[T](Object[] args) at CsvHelper.Configuration.CsvConfiguration.RegisterClassMap[TMap]()
@Ian1971 Ian1971 Я подозреваю, что вы используете шаблонную версию RegisterClassMap<mytype>(...)
, для которой требуется конструктор без параметров, но выполнение того, что показывает @David, как RegisterClassMap(...)
, работает нормально, по крайней мере, на CsvHelper v27
Можете ли вы добавить пример CSV?