我正在开发一个Windows服务将举办两件事情:SimpleInjector结合WCF和“正规”注册
- WCF服务
- 一个周期性作业执行“常规”窗口服务(使用Quartz.net )
因此,基本上,一个应用程序(可执行文件)的托管这两种服务类型。
这两种服务类型需要使用存储库和其他注射依赖。我正在使用SimpleInjector。
我已经得到了WCF部分启动和运行,使用SimpleInjectors WCF的一些推广:
public class DependencyResolver : IPackage
{
public void RegisterServices(Container container)
{
container.EnablePerWcfOperationLifestyle();
var wcfLifestyle = new WcfOperationLifestyle();
container.Register<IUnitOfWork, UnitOfWork>(wcfLifestyle);
container.Register<ICustomerRepository, CustomerRepository>(wcfLifestyle);
//etc...
container.RegisterWcfServices(Assembly.GetExecutingAssembly());
}
}
我的问题:我可以重复使用这些存储库和其他注册的“常规”窗口服务部内,即一个NOT使用WCF?因为我不知道该WcfOperationLifestyle将如何影响他们,如果我这样做。
我想每一个石英作业点火时间,需要一个或多个库使用短暂的生活方式。并且,在该作业正在运行时,显然会有WCF调用进来,然后应该使用独立于当前在计划作业中使用的存储库的新存储库实例。
我应该创建新的注册吗?如果是这样,那么我应该如何从执行的代码中调用它们?
感谢
请您描述或给出一个关于您如何做自己托管的WCF + WindowsService + SimpleInjectors(特别感兴趣的DI)的链接 – aleha