Mik*_*art 2 c# automapper automapper-9
我使用的是版本 9。我使用的是基于配置文件的配置。当我运行应用程序 Mapper.Map<>() 方法抛出以下异常:
JobAssist.Services.ResumeBankMgmt.API.Application.ViewModels.ResumeBankViewModel 需要有一个带有 0 args 或只有可选 args 的构造函数。(参数“类型”)
我不知道是什么原因造成的。
问题是我有一个参数的名称与我的类属性不完全一样。请参阅我将构造函数中的“类别”更改为“resumeCategories”。
原始代码:
public class ResumeBankViewModel
{
public List<ResumeCategoryViewModel> ResumeCategories { get; set; }
public ResumeBankViewModel(int id, int jobSeekerID, List<ResumeViewModel> resumes, List<ResumeCategoryViewModel> categories)
Run Code Online (Sandbox Code Playgroud)
新代码:
public class ResumeBankViewModel
{
public List<ResumeCategoryViewModel> ResumeCategories { get; set; }
public ResumeBankViewModel(int id, int jobSeekerID, List<ResumeViewModel> resumes, List<ResumeCategoryViewModel> resumeCategories)
Run Code Online (Sandbox Code Playgroud)
经典映射适用于基于源成员的映射: https ://docs.automapper.org/en/latest/Construction.html
如果您无法更改具有与成员不同的参数的构造函数的类(例如在合约中),则可以使用ConstructUsing.
您可以像这样使用它来指定参数:
Mapper.CreateMap<ObjectFrom, ObjectTo>()
.ConstructUsing(x => new ObjectTo(arg0, arg1, etc));
Run Code Online (Sandbox Code Playgroud)
在此处查看完整答案:Automapper - 如何映射到构造函数参数而不是属性设置器
| 归档时间: |
|
| 查看次数: |
3620 次 |
| 最近记录: |