使用WCF的简单喷油器

时间:2018-07-12 10:24:10

标签: asp.net-mvc wcf simple-injector

我是Simple Injector的新手。 我有一个带有类别 Testservice 的WCF服务,该服务实现了接口 ITestService 。根据Simple Injector文档,在svc标记中,我将工厂属性添加为“ SimpleInjector.Integration.Wcf.SimpleInjectorServiceHostFactory,SimpleInjector.Integration.Wcf” 。同样在AppStart中,我使用以下命令注册了容器

container.RegisterWcfServices(Assembly.GetExecutingAssembly()); &
container.Register<ITestService, TestService>(Lifestyle.Scoped);

WCF正常工作。现在,我需要从MVC应用程序中使用服务TestService。 在我的MVC应用程序中,我通过Nuget添加了 SimpleInjector.Integration.Web SimpleInjector.Integration.Web.MVC ,并且还添加了WCF服务参考。

我为在MVC应用程序的“应用程序启动”中注册 TestService 类而感到惊讶,以便注入控制器。容器需要注册为

container.Register(ITestService, <TImplementation>);

但是我无法解决或找出我需要在实施上提供的内容。它需要一个实现类,即TestService,但是TestService在WCF componebt中可用,并且只有MVC应用中的接口引用在这里。

有人可以指导我的方法是否正确以及上述解决方案。预先感谢。

1 个答案:

答案 0 :(得分:1)

您可以在registerIn方法中为SimpleInjector提供一种工厂方法,该方法将用于构建对象。

container.Register<ITestService, TestService>(Lifestyle.Scoped);

可以写为

container.Register<ITestService>(() => new TestServiceClient(), Lifestyle.Scoped);

然后您可以自由选择要在工厂方法中使用的构造函数