Emit Mapper "Обнуляемый объект должен иметь значение"

Я использую Emit Mapper для копирования полей из InternalClass в ExternalClass.

public class InternalClass {
   public int? Id { get; set; }
   public DateTime? RecordDate {get; set;}
}

public class ExternalClass {
   public int Id { get; set; }
   public DateTime RecordDate {get; set;}
}

Я использую следующий код для преобразования списка в список.

ObjectMapperManager.DefaultInstance.GetMapper<InternalClass, ExternalClass>(
new DefaultMapConfig()).Map(list);  // list = List<InternalClass>

Но это дает мне "Обнуляемый объект должен иметь значение". Я также попытался переопределить ненулевые свойства:

ObjectMapperManager.DefaultInstance
.GetMapper<List<InternalClass>, List<ExternalClass>>(
   new DefaultMapConfig()
   .NullSubstitution<int?, int>(delegate { return default(int); })
   .NullSubstitution<DateTime?, DateTime>(delegate { return default(DateTime); }) 
).Map(source);

Я также попытался сделать типы в обоих классах обнуляемыми, но безуспешно. Есть другие идеи?

0 ответов

Другие вопросы по тегам