我有一个包含字节列表的源对象('Roles')
源对象:
public class SourceObjectModel
{
public int Id { get; set; }
public List<byte> Roles { get; set; }
}
目标对象包含对象属性列表(“角色”)
目标对象:
public class DestinationObjectModel
{
public int Id { get; set; }
public List<MyObject> Roles { get; set; }
}
MyObject对象:
public class MyObject
{
public byte Id { get; set; }
}
我想将源对象映射到目标对象。
我的自动映射器配置:
o.CreateMap<SourceObjectModel, DestinationObjectModel>()
.ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Id))
.ForMember(dest => dest.Roles, opt => opt.ResolveUsing(src => new MyResolver()))
我创建了一个自定义转换器类,以将字节列表转换为对象列表。
MyResolver类:
public class MyResolver: ITypeConverter<List<byte>, List<MyObject>>
{
public List<MyObject> Convert(List<byte> source, List<MyObject> destination, ResolutionContext context)
{
return new List<MyObject>();
}
}
运行AssertConfigurationIsValid()后,我的应用程序崩溃了,但是我没有得到特定的详细错误。谁能告诉我我的自定义解析器类有什么问题吗?
答案 0 :(得分:0)
最后,我设法解决了该错误。在我的映射器配置中添加了一个新的映射器:
o.CreateMap<List<byte>, List<MyObject>>()
.ConvertUsing<MyResolver>();
然后我从基本源对象到目标对象映射配置中删除了属性映射:
o.CreateMap<SourceObjectModel, DestinationObjectModel>()
.ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Id));