我已经创建了一个TCP侦听器(网络套接字)实例作为TopShelf Windows服务。由于这个项目是Main()而不是类库的服务,我不确定如何创建一个允许我注入回调的构造函数。
具体来说,这个想法是当TCP侦听器收到消息时,它应该调用注入的回调方法。通常使用类库我会创建一个构造函数作为参数ICallback并相应地实例化。
我可以使用TopShelf服务执行构造函数注入吗?如果是这样,怎么样?
答案 0 :(得分:1)
有这样的事情:
HostFactory.New(x =>
{
x.SetDisplayName("Your service");
x.SetServiceName("yourservice");
x.Service<MyService>(c =>
{
c.SetServiceName("My service");
c.ConstructUsing(name => container.Resolve<MyService>());
c.WhenStarted(s => s.Start());
c.WhenStopped(s => s.Stop());
});
})
.Run();