Я использую 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 создать экземпляр узла со свойством Interfaces (InterfaceCollection), заполненным значениями из DTO?
Когда я запускаю приложение с этой настройкой, у меня появляется ошибка:
Невозможно привести объект типа 'System.Collections.Generic.List`1 [Models.Api.IInterface]' к типу 'Models.Api.IInterfaceCollection'.