2016-10-26 3 views
0

После просмотра Automapper attributes Я попытался ответить this question, поэтому я сделал быстрое консольное приложение для воспроизведения поведения. Я добавил (копию-вставили) классы в первом примере из документации GitHub:Необработанное исключение типа «Исключение System.TypeInitializationException» произошло в ConsoleApplication.exe - Automapper

[MapsTo(typeof(Customer))] 
public class Person 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string Notes { get; set; } 
} 

public class Customer 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string MyCustomerNotes { get; set; } 
} 

И добавил то же заявление в основном:

typeof(Program).Assembly.MapTypes(); //this throws exception 
var person = new Person { FirstName = "John", LastName = "Lackey" }; 
var customer = AutoMapper.Mapper.Map<Customer>(person); 

но в первой строке коды основной, при вызове метода MapTypes, исключение типа TypeInitializationException брошено:

необработанное исключение типа «System.TypeInitiali zationException 'произошел в ConsoleApplication.exe

Дополнительная информация: Инициализатор типа для «AutoMapper.Attributes.Extensions» сделал исключение.

Почему это исключение выбрано, так как я выполнил все инструкции в документации?

Внутреннее исключение:

{ "Последовательность не содержит соответствующий элемент"}

Примечание:

Я использую AutoMapper версии 5.1.1 и AutoMapper.Attributes версии 1.0 +0,20.

+1

Вы можете сообщить о внутреннем исключении TypeInitializationException? – Georg

+0

@Georg похоже, что у меня такая же проблема, но все же я не могу понять, почему это не работает – meJustAndrew

ответ

1

Похоже, вы используете Automapper 5, но Automapper.Attributes, кажется, работает только с версией 4. Я пробовал его с версией 4, и он работал, как ожидалось.

Проблема, кажется, что метод изменения подписи, который ищется с помощью отражения в Attributes.Extensions

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