Я обновил AutoMapper 5.0.0 и получил исключение, когда Automapper пытается создать карту.AutoMapper 5.0.0 Выдает исключение для CreateMap
В следующем примере выбрасывает аналогичное исключение { «Выражение типа„System.Collections.Generic.IEnumerable`1 [DTOClass]“не может быть использован для назначения типа„System.String“»}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Start");
Mapper.Initialize(cfg =>
{
cfg.CreateMap<string, IEnumerable<DTOClass>>().ConvertUsing(src =>
{
var response = JsonConvert.DeserializeObject<AnotherClass>(src);
return response?.TestClasses == null ? null : Mapper.Map<IEnumerable<DTOClass>>(response.TestClasses);
});
cfg.CreateMap<TestClass, DTOClass>();
});
Console.WriteLine("Done");
}
}
public class DTOClass
{
public string Title { get; set; }
}
public class AnotherClass
{
public TestClass[] TestClasses { get; set; }
}
public class TestClass
{
public string Title { get; set; }
}
Эта ошибка связана с самими выражениями. Возможно, Automapper, где-то внутри, извлекает неправильные/неправильные типы для вызова метода 'Assign'. Я не исследовал глубже, но теперь вы можете поменять 'IEnumerable' на 'DTOClass []' - он не будет вызывать такую ошибку. –
MaKCbIMKo
нашел, возможно, вашу [проблему GitHub] (https://github.com/AutoMapper/AutoMapper/issues/1460) – MaKCbIMKo