我使用的是版本 9。我使用的是基于配置文件的配置。当我运行应用程序时, Mapper.Map<>() 方法会引发以下异常:
JobAssist.Services.ResumeBankMgmt.API.Application.ViewModels.ResumeBankViewModel 需要有一个带有 0 个参数或只有可选参数的构造函数。(参数“类型”)
我不知道这是什么原因造成的。
我使用的是版本 9。我使用的是基于配置文件的配置。当我运行应用程序时, Mapper.Map<>() 方法会引发以下异常:
JobAssist.Services.ResumeBankMgmt.API.Application.ViewModels.ResumeBankViewModel 需要有一个带有 0 个参数或只有可选参数的构造函数。(参数“类型”)
我不知道这是什么原因造成的。
问题是我有一个参数的名称与我的类属性不完全一样。请参阅我将构造函数中的“类别”更改为“resumeCategories”。
原始代码:
public class ResumeBankViewModel
{
public List<ResumeCategoryViewModel> ResumeCategories { get; set; }
public ResumeBankViewModel(int id, int jobSeekerID, List<ResumeViewModel> resumes, List<ResumeCategoryViewModel> categories)
新代码:
public class ResumeBankViewModel
{
public List<ResumeCategoryViewModel> ResumeCategories { get; set; }
public ResumeBankViewModel(int id, int jobSeekerID, List<ResumeViewModel> resumes, List<ResumeCategoryViewModel> resumeCategories)
假设您可以访问源代码,并且这不在您引用的第 3 方程序集中...
找到类的定义ResumeBankViewModel(ViewModels\ResumeBankViewModel.cs 可能是一个不错的起点。)
并添加这一行:
public ResumeBankViewModel(){ }
如果有这样的一行:
private ResumeBankViewModel() /* { etc. } */
或这个:
internal ResumeBankViewModel() /* { etc. } */
您可以将private/更改internal为public.
您可能还希望查看已定义的其他公共构造函数并将一些适当的值传递给其中一个:
public ResumeBankViewModel() : this(value1, value2, value3) { }
或使其参数可选:
public ResumeBankViewModel(object arg1 = value1, object arg2 = value2, object arg3 = value3)
其中任何一个都可能导致您需要解决更多问题,但其中一个是清除此错误的最低要求。