2016-07-05 2 views
0

Я обновил 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; } 
} 
+0

Эта ошибка связана с самими выражениями. Возможно, Automapper, где-то внутри, извлекает неправильные/неправильные типы для вызова метода 'Assign'. Я не исследовал глубже, но теперь вы можете поменять 'IEnumerable ' на 'DTOClass []' - он не будет вызывать такую ​​ошибку. – MaKCbIMKo

+0

нашел, возможно, вашу [проблему GitHub] (https://github.com/AutoMapper/AutoMapper/issues/1460) – MaKCbIMKo

ответ

Смежные вопросы