我正在努力理解我在这里做错了什么。我一直在解决方案中使用 Automapper + Automapper.Attributes ( https://github.com/schneidenbach/AutoMapper.Attributes ),最近我不得不将我的 API 项目拆分成一个“核心”库和原始 API . 当类文件移到 API 项目之外时,Automapper 无法创建映射。我已经设置了一个具有以下结构的演示项目来确认这个问题:(可在此处获得:https : //github.com/greghesom/AutoMapper_Example)
解决方案
API(客户和人员类)
API.Core(宠物和狗类)
API 项目引用 API.Core
Pet 类映射到 Dog 类
Person 类映射到 Customer 类
API.Core - 狗类
namespace API.Core
{
public class Dog
{
public string Name { get; set; }
}
}
API.Core - 宠物类
namespace API.Core
{
[MapsTo(typeof(Dog))]
public class Pet
{
[MapsToProperty(typeof(Dog), "Name")] //Edit: Fixed this typo
public string PetName { get; set; }
}
}
API - 人员类
namespace API.Models
{
[MapsTo(typeof(Customer))]
public class Person
{
[MapsToProperty(typeof(Customer), "FirstName")]
public string Name { get; set; }
}
}
API - 客户类
namespace API.Models
{
public class Customer
{
public string FirstName { get; set; }
}
}
API - 启动
AutoMapper.Mapper.Initialize(cfg => {
typeof(API.WebApiConfig).Assembly.MapTypes(cfg);
});
API - 控制器
var person = new Person { Name = "John" };
var customer = AutoMapper.Mapper.Map<Customer>(person);//This Works
var dog = new Dog { Name = "Lucky" };
var pet = AutoMapper.Mapper.Map<Pet>(dog);//This throws exception
人到中年有点甜
相关分类