如何将HostControl实例传递到TopShelf中的自定义主机服务

本文关键字:TopShelf 自定义 主机服务 HostControl 实例 | 更新日期: 2023-09-27 18:00:02

这个问题在SO的其他地方也有人问过,但没有迹象表明我是如何获得帖子所建议的HostControl的实例的。我的TopShelf主程序如下:

    public static void Main()
    {
        HostFactory.Run(CreateHost);
    }
    private static void CreateHost(HostConfigurator x)
    {
        x.UseLog4Net();
        x.Service<EventBroker>(s =>
        {
            s.ConstructUsing(name => new EventBroker());
            s.WhenStarted(tc => tc.Start());
            s.WhenStopped(tc => tc.Stop());
        });
        x.StartAutomatically();
        x.RunAsNetworkService();
    }

有什么建议吗?

如何将HostControl实例传递到TopShelf中的自定义主机服务

更改何时开始将HostControl像这样传递给它

   s.WhenStarted((tc, hostControl) => tc.Start(hostControl));

根据此处的TopShelf文档http://topshelf.readthedocs.org/en/latest/configuration/config_api.html