Использование Mapster для сопоставления представленного интерфейса с классом модели? - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь использовать Mapster для сопоставления сложных объектов от поставщика данных, представленного в виде интерфейса. Мои интерфейсы:

public interface ICase
{
    string CaseId { get; set; }
    List<IPortfolio> Portfolios { get; set; }
}
public interface IPortfolio
{
    string FirstName { get; set; }
    string LastName { get; set; }
    int Id { get; set; }
}

Я хочу отобразить классы, производные от вышеупомянутого, в новый набор классов, также производных от вышеупомянутого интерфейса.

Мои приемные классы:

 public class Case : ICase
{
    public Case()
    {
        Portfolios = new List<IPortfolio>();
    }
    public string CaseId { get; set; }
    public List<IPortfolio> Portfolios { get; set; }
}
 public class Portfolio : IPortfolio
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Id { get; set;}
}

Моя конфигурация Mapster такова:

  TypeAdapterConfig<ICase, Case>.NewConfig()
     .ConstructUsing(src => new Case());

  TypeAdapterConfig<IPortfolio, Portfolio>.NewConfig()
     .ConstructUsing(src => new Portfolio());

Когда я запускаю это, я получаю сообщение об ошибке

Нет конструктора по умолчанию для типа «IPortfolio», используйте «ConstructUsing»

Я не нахожу много документации относительно использования ConstructUsing для Mapster. Как правильно его использовать и почему он не работает?

...