类型为'System.TypeInitializationException'发生在ConsoleApp
本文关键字:ConsoleApp System 类型 TypeInitializationException | 更新日期: 2023-09-27 18:14:56
在查看了Automapper的属性后,我试图回答这个问题,所以我制作了一个快速控制台应用程序来重现该行为。我在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; }
}
并在main中添加了相同的语句:
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的异常:
类型为"System"的未处理异常。TypeInitializationException'发生在ConsoleApplication.exe
附加信息:"AutoMapper.Attributes"的类型初始化项。扩展抛出了一个异常。
既然我遵循了文档中的所有说明,为什么会抛出这个异常?
内部异常是:
{"序列不包含匹配的元素"}
注意:
我正在使用AutoMapper版本5.1.1和AutoMapper。属性1.0.20.
看起来您正在使用Automapper 5,但是Automapper.Attributes
似乎只与版本4一起工作。我在第4版上尝试了一下,效果和预期的一样。
问题似乎是一个方法签名改变了,这是通过反射在Attributes.Extensions