【问题标题】:Structuremap can't resolve an instance if it depends on an enum如果依赖于枚举,Structuremap 无法解析实例
【发布时间】:2012-09-06 07:52:16
【问题描述】:

我有一个集成测试,它在代码中初始化一个测试 wcf 服务主机。 最近集成了Structuremap和wcf,现在wcf基础设施使用structmap来创建服务实例。
我托管的服务之一取决于枚举。
该服务的配置如下所示:

public class MyService
{
    MyService(MyEnum enum)
    {
       ...
    }
}

For<MyService>().Use<MyService>().Ctor<MyEnum>().Is(MyEnum.Value);

当我尝试解析服务时,我收到结构映射错误 202(没有为插件系列“MyNamespace.MyService”注册默认实例)

任何想法可能是什么问题?

【问题讨论】:

  • MyService 是实现吗?接口是什么?如果你从构造函数中取出枚举并将其连接起来,你会得到同样的错误吗?

标签: .net dependency-injection ioc-container structuremap


【解决方案1】:

只需向工厂委托注册类型:

For<MyService>().Use(() => new MyService(MyEnum.Value));

【讨论】:

  • 这只有在类型很容易初始化的情况下才有效,但如果枚举只是许多构造函数参数的一个值,这不起作用。
猜你喜欢
  • 2014-10-09
  • 2015-09-19
  • 2016-10-24
  • 1970-01-01
  • 2012-08-05
  • 2016-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多