gpt4 book ai didi

c# - 调用 TopShelf.HostFactory.Run 后获取 ServiceName/Instance

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

在调用 TopShelf.HostFactory.Run() 后,有没有办法获取提供给 TopShelf 服务的 ServiceName 和 InstanceName?

一种选择是直接从命令行参数中提取它。

但很好奇 TopShelf 是否会自己公开这些属性。

在挖掘 TopShelf 的源代码后,没有看到暴露的点/属性。

最佳答案

您可以获得服务名称(以及描述和显示名称等其他属性),如下所示:

        HostFactory.Run(x =>
{
x.Service((ServiceConfigurator<MyService> s) =>
{

s.ConstructUsing(settings =>
{
var serviceName = settings.ServiceName;
return new MyService();
});
}
}

或者如果您的 MyService 实现了 ServiceControl

        HostFactory.Run(x =>
{
x.Service<MyService>((s) =>
{
var serviceName = s.ServiceName;

return new MyService();
});
}
/***************************/

class MyService : ServiceControl
{
public bool Start(HostControl hostControl) { }

public bool Stop(HostControl hostControl) { }
}

如果您需要在 MyService 中使用服务名称,只需将其作为构造函数参数或属性传递即可。

关于c# - 调用 TopShelf.HostFactory.Run 后获取 ServiceName/Instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22998650/

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