我将 Topshelf 与 FluentSchedule 结合用于 Windows 服务。
但是,我希望能够试运行应用程序以简单地启动而不是执行设置计时器等的 FluentSchedule 代码。
从命令行运行 exe 文件(即没有“安装”命令)时,有没有办法从 TopShelf 检查它是否在控制台模式下运行?
这有点像黑客,但你可以尝试投射HostControl
接口到ConsoleRunHost
,如果是这种类型,那么您将作为控制台应用程序运行。
当然,这并不理想,但是您可以将其隐藏在扩展方法中以使其不那么难看。
public static bool IsRunningAsConsole(this HostControl control)
{
return control is ConsoleRunHost;
}
然后,您可以通过调用服务配置中的 WhenStarted() 传入 HostControl 来访问 HostControl。
s.WhenStarted((tc, hostControl) => tc.Start(hostControl));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)