gpt4 book ai didi

c# - Topshelf 是否可以从一个控制台应用程序启动多项服务?

转载 作者:太空狗 更新时间:2023-10-29 17:43:29 26 4
gpt4 key购买 nike

正如 TosShelf 所说:

“您只能拥有一项服务!从 3.x Topshelf 开始,基础产品不再支持托管多项服务。

从版本 3.x 开始,我需要弄清楚如何集成新版本的 Topshelf。

问题:是否可以使用 Topshelf 从一个控制台应用程序启动多个单独的服务?我怎样才能做到这一点?

最佳答案

Topshelf 不再支持此功能,但可能的解决方法是实现一个类来启动多个服务。

例子:

// ServiceManager is used to start and stop multiple services
hostConfigurator.Service<ServiceManager>(s =>
{
s.ConstructUsingNinject(); // service1 and service2 injected into ServiceManager
s.WhenStarted(tc => tc.Start());
s.WhenStopped(tc => tc.Stop());
});

ServiceManager 类随后将启动和停止多个服务。

public class ServiceManager
{
private readonly Service1 service1;
private readonly Service2 service2;

public ServiceManager(Service1 service1, Service2 service2)
{
this.service1= service1;
this.service2= service2;
}

public void Start()
{
service1.Start();
service2.Start();
}

public void Stop()
{
service1.Stop();
service2.Stop();
}
}

关于c# - Topshelf 是否可以从一个控制台应用程序启动多项服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14974824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com