如何使用接口类型映射嵌套属性?

时间:2018-10-01 11:32:33

标签: c# automapper

我正在使用AutoMapper,并且具有DTO的节点和接口。 DTO节点具有一组接口:

public class NodeDto
{
    public List<InterfaceDto> Interfaces { get; set; }
}

然后我要将该DTO映射为如下模型:

public interface IInterfaceCollection : IBaseCollection<IInterface>
{
    INode Node { get; }
}

public class InterfaceCollection : IInterfaceCollection
{

}

public class Interface : IInterface
{

}

public class Node : INode
{
    public IInterfaceCollection Interfaces { get; set; }
}

在应用程序注册码中,我有:

CreateMap<NodeDto, INode>()
    .ConstructUsing(n => new Node())
    .ForMember(d => d.Interfaces, m => m.MapFrom(s => s.Interfaces));

CreateMap<InterfaceDto, IInterface>()
    .ConstructUsing(n => new Interface());

但是如何告诉AutoMapper创建一个具有由DTO值填充的属性Interfaces(InterfaceCollection)的Node实例?

当我使用此设置ive启动应用程序时出现错误:

  

无法转换类型的对象   'System.Collections.Generic.List`1 [Models.Api.IInterface]'   键入“ Models.Api.IInterfaceCollection”。

0 个答案:

没有答案