请注意,我使用的是 Autofac,但是当我运行 API 并使用此 URL 与Postman进行检查时,:http://localhost:1234/api/calculations/corpname&51&114&1045但我有一个用于计算控制器的公共无参数构造函数:using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Web;using System.Web.Http;using AutoMapper;using MyAppTools.Data;using MyAppTools.Models;namespace MyAppTools.Controllers{ public class CalculationsController : ApiController { private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger(); private readonly IMapper _mapper; private readonly ICalcRepository _repository; private readonly IMyModelUserRepository _myModelRepository; public CalculationsController() { } public CalculationsController(ICalcRepository repository, IMyModelUserRepository myModelRepository, IMapper mapper) { _repository = repository; _myModelRepository = myModelRepository; _mapper = mapper; } public async Task<IHttpActionResult> Get() { try { var result = await _repository.GetAllCalculationsAsync(); if (result == null) return NotFound(); // Mapping // This centralizes all of the config var mappedResult = _mapper.Map<IEnumerable<CalculationModel>>(result); return Ok(mappedResult); } catch (Exception ex) { Logger.Error(ex); // Be careful about returning exception here return InternalServerError(); } }到目前为止,我已经在这里检查解决方案:Autofac 和 ASP .Net MVC 4 Web API https://www.nopcommerce.com/boards/t/38102/none-of-the-constructors-found-with-autofaccoreactivatorsreflectiondefaultconstructorfinder-on-type.aspx但我认为这不适用于我的情况。
1 回答
慕容3067478
TA贡献1773条经验 获得超3个赞
错误消息中有趣的部分是
Autofac.Core.Activators.Reflection.DefaultConstructorFinder使用on 类型找到的任何构造函数都EddiTools.Data.CalcRepository不能使用可用的服务和参数来调用:无法解析
EddiTools.Data.ICalcContext context构造函数的参数Void .ctor(EddiTools.Data.ICalcContext)。
这意味着 Autofac 尝试创建一个CalcRepository,但没有ICalcContext可用的。
如果你查看你的注册,你只注册了类型,而没有表明它是一个ICalcContext
bldr.RegisterType<CalcContext>() .InstancePerRequest();
如果你将其更改为
bldr.RegisterType<CalcContext>() .As<ICalcContext>() .InstancePerRequest();
您的CalcContext类型将被注册为 a,ICalcContext这将让 Autofac 创建您的CalcRepository
- 1 回答
- 0 关注
- 212 浏览
添加回答
举报
0/150
提交
取消
