发射映射器“Nullable对象必须具有值”

时间:2013-10-09 18:30:13

标签: c# reflection nullable non-nullable emitmapper

我正在使用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;}
}

我使用以下代码将List转换为List。

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

但它给了我“Nullable对象必须有一个值”。我也试过覆盖不可空的属性:

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 个答案:

没有答案