You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法实例化TransmissionsRepository代理类:构造函数匹配失败求助

问题分析与解决

问题场景

执行以下测试代码时:

transmissionsRepository = new Mock<TransmissionsRepository>(transmissionsContext, httpContextAccessor.Object, transLogger.Object);

controller = new UtilityController(logger.Object,transmissionsRepository.Object);

实例化控制器阶段抛出异常,报错信息:

无法实例化类Services.Transmissions.TransmissionsRepository的代理。
找不到匹配给定参数的构造函数:
Entities.EDWTransmissionsContext
Castle.Proxies.IHttpContextAccessorProxy

解决方法

  • 核对TransmissionsRepository的公开构造函数签名,确保传入的参数类型、数量、顺序完全匹配某一构造函数。报错核心是Moq找不到对应参数组合的构造函数,需检查httpContextAccessor.Object的实际类型是否与构造函数期望的IHttpContextAccessor接口一致,是否存在类型不兼容问题。
  • 优先Mock接口而非具体类:如果TransmissionsRepository实现了ITransmissionsRepository这类接口,直接Mock接口能规避具体类构造函数的匹配问题,同时更符合依赖倒置原则。
  • 验证传入参数的有效性:确认transmissionsContext、httpContextAccessor.Object、transLogger.Object均为正确初始化的实例,无空引用或类型不匹配情况。

内容的提问来源于stack exchange,提问作者Post Impatica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 10:42:08