如何检测我是否在单一服务中运行?

BaB*_*aBu 7 c# linux mono mono-service

如何检测我在mono-service2下运行?(在C#/ .NET 3.5中,在ubuntu 11上运行mono 2.6.7)

Type.GetType("Mono.Runtime")告诉我我正在单声道运行,所以那部分还可以.但是Environment.UserInteractive在单声道下看起来总是假的,所以我很难弄清楚我是否真的在mono-service2下运行 - 没有控制台/终端.

kon*_*ski 5

Environment.UserInteractive是不正确的解决方案,但不幸的是,目前尚未在Mono中实现.我有一天可能会看一下并升级这个答案;)

然而刚刚检测到您大概可以使用围绕这一哈克解决方案:给名mono-servicem参数将(至少根据成为服务的应用领域的友好名称电流源代码mono-service).因此,使用此参数运行时,您应该能够测试:

AppDomain.CurrentDomain.FriendlyName == "NameGivenToMParameter"
Run Code Online (Sandbox Code Playgroud)

如果确实如此,那么您的应用程序显然是使用单一服务运行(使用给定参数).将应用程序域名的值打印到文件以查看它是否真的有效(它适用于我);)我不知道它是否真的可以解决您的问题.