【发布时间】:2021-07-08 11:14:50
【问题描述】:
我有一个类型SupportedCurrencies,其中包含Currency 类型的对象列表:
public class SupportedCurrencies
{
public List<Currency> Currencies { get; set; }
}
public class Currency
{
public string Code { get; set; }
public string AmountMin { get; set; }
public string AmountMax { get; set; }
}
我想将它映射到SupportedCurrency 类型的对象列表:
public class SupportedCurrency
{
public string CurrencyCode { get; set; }
public string MinAmount { get; set; }
public string MaxAmount { get; set; }
}
在我的映射配置文件中,我有以下映射:
CreateMap<Response.Currency, SupportedCurrency>()
.ForMember(p => p.MinAmount, q => q.MapFrom(r => r.AmountMin))
.ForMember(p => p.MaxAmount, q => q.MapFrom(r => r.AmountMax))
.ForMember(p => p.CurrencyCode, q => q.MapFrom(r => r.Code));
CreateMap<SupportedCurrencies, IList<SupportedCurrency>>().ConvertUsing(MappingFunction);
转换器看起来像这样:
private IList<SupportedCurrency> MappingFunction(SupportedCurrencies arg1, IList<SupportedCurrency> arg2, ResolutionContext arg3)
{
foreach (var item in arg1.Currencies)
{
arg2.Add(arg3.Mapper.Map<SupportedCurrency>(item));
}
return arg2;
}
但是当我尝试映射它时:
_mapper.Map<IList<SupportedCurrency>>(obj01.SupportedCurrencies);
我得到一个异常说:
Method 'get_Item' in type 'Proxy_System.Collections.Generic.IList`1 is not implemented.
我做错了什么?
【问题讨论】:
标签: c# .net-core automapper