任何将 Ninject 与 Windows 服务一起使用的好例子?我不确定是否需要任何扩展。另外,不确定组合根应该是什么?有使用 Ninject 和 Windows 服务的好例子吗?
问问题
8504 次
2 回答
19
在依赖注入方面,Windows 服务与常规命令行应用程序没有太大区别。直接的组合根是您的Main
方法。
我通常这样做的方式是在其中创建StandardKernel
一个模块,在其中解决我的依赖关系。然后用于kernel.Get
解决顶级依赖项 - 其他一切都将从那里开始:
static void Main(string[] args)
{
var kernel = new StandardKernel(new FooModule());
var barDependency = kernel.Get<Bar>();
System.ServiceProcess.ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] { new FooService(barDependency) };
System.ServiceProcess.ServiceBase.Run(ServicesToRun);
}
于 2012-04-23T21:05:46.200 回答
1
使用带有 TopShelf 的 Ninject .. run vs install(start) 我遇到了一个奇怪的问题,> MyService.exe run
代码可以正常工作 Kernel.Bind(handlers => { var bindings = handlers.From("abc.dll") ... }
但是当我使用安装后启动服务时> MyService.exe install
它无法解析 Ninject 程序集扫描中提到的绑定。
经过几个小时打破我的头......
更改.From(...)
为.FromAssembliesMatching(...)
我可以成功启动服务。
希望它可以帮助某人。
于 2013-03-21T19:42:24.587 回答