我正在使用 AutoMapper 2.2.1 将不同的业务对象映射到视图模型。现在我得到一个InvalidCastExceptions
如果我尝试映射具有类型属性的对象CustomList
(见下面的代码)。异常说CustomList
不能强制转换为IList
. 这是正确的,因为CustomList
implementsIReadOnlyList
而不是IList
.
那么为什么 automapper 试图以这种方式投射它以及如何修复/解决这个问题?
我有这些类型:
public class MyViewModel : SomeModel { //... some addtional stuff ...}
public class SomeModel {
public CustomList DescriptionList { get; internal set; }
}
public class CustomList : ReadOnlyList<SomeOtherModel> {}
public abstract class ReadOnlyList<TModel> : IReadOnlyList<TModel> {}
//map it
//aList is type of SomeModel
var viewList = Mapper.Map<List<MyViewModel>>(aList);