8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在 ASP.NET Core 中注入 AutoMapper 时出现问题。错误:公共参数化构造函数必须仅包含与声明的参数匹配的参数

Chrysophylaxs 2月前

39 0

我有一个 ASP.NET Core Web API 项目。为了配置 AutoMapper,我在 Program.cs 文件中添加了以下代码:builder.Services.AddAutoMapper(typeof(Program));我将 AutoMapper 注入...

我有一个 ASP.NET Core Web API 项目。为了配置 AutoMapper,我在文件中添加了以下代码 Program.cs

 builder.Services.AddAutoMapper(typeof(Program));

我在我的服务中注入了 AutoMapper, BpmsServices 如下所示:

public class BpmsServices(
    IMapper mapper,
    IRepository<Workflow> workflowRepository)
{
    public IMapper DataMapper { get;  } = mapper;
    public IRepository<Workflow> WorkflowRepository { get; } = workflowRepository;
}

在 API 文件中,我有:

 public static IEndpointRouteBuilder MapWorkflowDesignApiV1(this IEndpointRouteBuilder app)
 {
     var api = app.MapGroup("api/workflow")
         .HasApiVersion(1.0);

     api.MapPut("/Node/CreateUpdate", CreateUpdateNode);

     return app;
 }       

 public static async Task<Workflow> CreateUpdateNode([AsParameters] BpmsServices services, NodeDto node)
 {
     var  = await services.WorkflowRepository
          .Include("Nodes")
          .FirstOrDefaultAsync(s => s.Id == node.WorkflowId);

     if (node.Id != 0)
     {
         .AddNode(services.DataMapper.Map<NodeDto, Node>(node));
     }
     else
     {
         .UpdateNode(services.DataMapper.Map<NodeDto, Node>(node));
     }

     await services.WorkflowRepository.SaveChangesAsync();

     return;
 }

这是我得到的例外:

System.InvalidOperationException:公共参数化构造函数必须仅包含与类型“BpmsServices”声明的公共属性匹配的参数。

问题是什么?

帖子版权声明 1、本帖标题:在 ASP.NET Core 中注入 AutoMapper 时出现问题。错误:公共参数化构造函数必须仅包含与声明的参数匹配的参数
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Chrysophylaxs在本站《asp.net-core》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 您能否包含 Node 实体的定义,包括构造函数。我怀疑您只有参数化的构造函数,但 Automapper 不愿意尝试从您的 NodeDto 类解析匹配的公共属性。(不过不确定为什么错误会提到 BpmsServices。此外,当涉及到更新时,我不会使用这种方法。Automapper 有一个

返回
作者最近主题: