将Ninject与Windows服务一起使用

使用Ninject和Windows服务的任何好例子? 我不确定我需要什么扩展。 另外,不确定作文根应该是什么? 在那里使用Ninject与Windows服务的任何好例子?

在dependency injection方面,Windows服务与常规命令行应用程序没有太大差别。 直接的组合根是你的Main方法。

我通常这样做的方法是在那里创建一个StandardKernel其中包含一个模块,我的依赖项在其中被解析。 然后使用kernel.Get来解决顶级依赖关系 – 其他一切将从那里开始:

 static void Main(string[] args) { var kernel = new StandardKernel(new FooModule()); var barDependency = kernel.Get(); System.ServiceProcess.ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new FooService(barDependency) }; System.ServiceProcess.ServiceBase.Run(ServicesToRun); } 

使用Ninject和TopShelf ..运行vs安装(开始)我遇到一个奇怪的问题, > MyService.exe run正常,代码为Kernel.Bind(handlers => { var bindings = handlers.From("abc.dll") ... }

但是当我使用> MyService.exe install后启动服务时

它无法解析Ninject程序集扫描中提到的绑定。

经过几个小时的打破我的头…

.FromAssembliesMatching(...)更改为.FromAssembliesMatching(...)我可以成功启动服务。

希望它可以帮到某人。