我创建了一个 TCP 侦听器(网络套接字)实例作为 TopShelf Windows 服务。由于这个项目是一个带有 Main() 的服务而不是一个类库,我不确定如何创建一个允许我注入回调的构造函数。
具体来说,这个想法是当 TCP 侦听器收到消息时,它应该调用注入的回调方法。通常使用类库我会创建一个构造函数,将 ICallback 作为参数并相应地实例化。
我可以使用我的 TopShelf 服务执行构造函数注入吗?如果是这样,怎么做?
像这样:
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();