在我的 MVC web 应用程序中,我得到了以下自动映射器代码:
配置:
public static void Configure()
{
Mapper.CreateMap<string, List<Ruimte>>().ConvertUsing<StringCombinatieRuimtesConverter>();
}
自定义转换器:
public class StringCombinatieRuimtesConverter : ITypeConverter<string, List<Ruimte>>
{
#region Implementation of ITypeConverter<in string,out List<Ruimte>>
public List<Ruimte> Convert(ResolutionContext context)
{
if (context.SourceValue == null)
{
return new List<Ruimte>();
}
return context.SourceValue.ToString().Split(',').Select(r => new Ruimte { Id = int.Parse(r) }).ToList();
}
#endregion
}
我用以下代码调用它:
var ruimteList = new List<Ruimte>();
// Update the CombinatieVan
Mapper.Map(command.CombinatieRuimteVan, ruimteList);
如果我调试 command.CombinatieRuimteVan 是:2,3,4,6。这可以。现在,如果我调试转换器,它会返回 4 个“Ruimte”类的对象,其 ID 为前面所述的数字。但是在 Mapper.Map 方法完成后,“ruimteList”仍然是一个空列表。
有谁知道这里出了什么问题?自动映射器在我的应用程序的另一个位置上运行良好,在该位置我自动映射包含“CombinatieRuimteVan”集的整个实体。但是当我单独将字符串转换为列表时,它似乎不起作用。