设置
- 解决方案使用棱镜
- 用VB编写的模块项目
- 用 C# 编写的测试项目
在我的单元测试中,我模拟了模块使用的服务并传递它们,但是当模块尝试解析时,它失败并出现以下异常
{"Resolution of the dependency failed, type = "UnderwritingWorkflow.Common.Services.IValidationService", name = "(none)".
Exception occurred while: while resolving.
Exception is: InvalidOperationException - The current type, UnderwritingWorkflow.Common.Services.IValidationService, is an interface and cannot be constructed. Are you missing a type mapping?
在异常发生时,容器是:
解决 UnderwritingWorkflow.Common.Services.IValidationService,(none) "}
下面是使用 UnityContainer 注册对象的代码:
var validationService = new Mock<IValidationService>(MockBehavior.Strict);
validationService.Setup(x => x.Validate(Moq.It.IsAny<object>()))
.Returns(() => new ValidationResults());
Container.RegisterInstance(validationService.Object);
此外,如果尝试在注册后直接从 c# 解析 IServiceValidation(从构造函数中)似乎有效:
Container.Resolve<IValidationService>();
任何想法为什么会发生这种情况?
注意:我正在使用在运行时创建类的 Moq 模拟框架,我想知道是不是 VB 的限制不允许我使用它?