【发布时间】:2016-07-22 09:00:24
【问题描述】:
我有控制台主机应用程序。在这里,我使用 IoC 容器作为实例的提供者,并希望将合约接口传递给 ServiceHost 构造函数。 显然,它说我不能用接口来做。
为什么 ServiceHost 甚至需要它?如果他想实例化它,我会附加自定义提供程序!更重要的是,我不想将实例传递给它——它应该是按需的。
如何仅从接口创建 ServiceHost(记住 IoC 中已经存在的所有必要绑定)?
例子:
var host = new ServiceHost(typeof(IMyContract), address);
因此,基本上,通过指定 InstanceProvider 您应该获得此行为。但是微软强制要求提供具体的实现类型,即使我提供了实例工厂并且可能没有具体的实现类型!
【问题讨论】:
-
也许一个代码示例会有所帮助并使您的问题更清楚。
-
添加代码示例。
-
你可能误会了。 IoC 基本上意味着依赖解析,所以我想通过仅指定它的合同接口来解决对特定类型的 ServiceHost 依赖。换句话说,InstanceProvider 应该只能自己做,而不是 ServiceHost 通过从构造函数中抛出一些愚蠢的异常。
标签: c# wcf dependency-injection