简体   繁体   English

如何在TopShelf中将HostControl实例传递给自定义主机服务?

[英]How to pass HostControl instance to custom host service in TopShelf?

This question has been asked elsewhere on SO , but there is no indication of how I get an instance of a HostControl as the post suggests. 这个问题已在其他地方被问过SO ,但没有迹象表明我如何获得HostControl的实例,如帖子所示。 My TopShelf main program looks like this: 我的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();
    }

Any suggestions? 有什么建议么?

Change WhenStarted to have HostControl passed to it like this 更改WhenStarted以使HostControl像这样传递给它

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

Per TopShelf documentation here http://topshelf.readthedocs.org/en/latest/configuration/config_api.html 每个TopShelf文档http://topshelf.readthedocs.org/en/latest/configuration/config_api.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM