类型为#System; TypeInitializationException'的未处理异常发生在ConsoleApplication.exe - Automapper中

时间:2016-10-26 12:17:19

标签: c# automapper

看了Automapper attributes之后我试图回答this question,所以我做了一个快速的控制台应用程序来重现行为。我在GitHub文档的第一个例子中添加了(复制粘贴)类:

[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);

但是在main的第一行代码中,当调用MapTypes方法时,抛出了类型 TypeInitializationException 的异常:

  

未处理的类型&#39; System.TypeInitializationException&#39;发生在ConsoleApplication.exe

附加信息:&#39; AutoMapper.Attributes.Extensions&#39;的类型初始值设定项。抛出异常。

为什么抛出此异常,因为我已按照文档中的所有说明进行操作?

内部例外是:

  

{&#34;序列不包含匹配元素&#34;}

注:

我正在使用AutoMapper版本5.1.1和AutoMapper.Attributes版本1.0.20。

1 个答案:

答案 0 :(得分:1)

看起来您正在使用Automapper 5,但Automapper.Attributes似乎只适用于版本4.我尝试使用版本4,它按预期工作。

问题似乎是方法签名发生变化,通过Attributes.Extensions

中的反射查找