Я пытаюсь использовать 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. Как правильно его использовать и почему он не работает?