亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Automapper MapsTo 屬性對引用的類不起作用

Automapper MapsTo 屬性對引用的類不起作用

C#
智慧大石 2021-07-30 22:12:02
我正在努力理解我在這里做錯了什么。我一直在解決方案中使用 Automapper + Automapper.Attributes ( https://github.com/schneidenbach/AutoMapper.Attributes ),最近我不得不將我的 API 項目拆分成一個“核心”庫和原始 API . 當類文件移到 API 項目之外時,Automapper 無法創建映射。我已經設置了一個具有以下結構的演示項目來確認這個問題:(可在此處獲得:https : //github.com/greghesom/AutoMapper_Example)解決方案API(客戶和人員類)API.Core(寵物和狗類)API 項目引用 API.CorePet 類映射到 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 Worksvar dog = new Dog { Name = "Lucky" };var pet = AutoMapper.Mapper.Map<Pet>(dog);//This throws exception
查看完整描述

2 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

我遇到了同樣的問題(AutoMapper 7.0.0)。問題的關鍵在于錯誤消息:“AutoMapper 為您創建了此類型映射,但您的類型無法使用當前配置進行映射”。從 6.2.0 開始,AutoMapper 嘗試為未顯式映射的類型創建映射本身,即:在很多情況下不再需要創建映射。

但是,它似乎使用它自己創建的映射而不是您定義的映射,即使對于您明確定義它們的類型也是如此。至少,這是我遇到的。

一個快速檢查的方法:降級到6.1.1版本,看看問題是否仍然存在。就我而言,降級解決了這個問題。

我確實覺得必須有更好的方法來解決這個問題(或者它甚至是一個錯誤......),但我還不知道如何。萬一我找到了,我會回貼在這里。只是想我已經把它扔在這里了,以防你需要快速修復:)


查看完整回答
反對 回復 2021-07-31
  • 2 回答
  • 0 關注
  • 226 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號