如何检测I';我在单声道服务中运行

本文关键字:单声道 声道 服务 运行 何检测 检测 | 更新日期: 2023-09-27 18:21:48

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

Type.GetType("Mono.Runtime")告诉我在mono-service2下运行,所以这部分没问题。但Environment.UserInteractive在mono-service下似乎总是错误的,所以我很难弄清楚我是否真的在mono-services2下运行-没有控制台/终端。

如何检测I';我在单声道服务中运行

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

然而,为了检测,你可能可以使用破解的解决方案:m参数中给mono-service的名称将成为该服务的应用程序域的友好名称(至少根据mono-service的当前源代码)。因此,当使用此参数运行时,您应该能够测试:

AppDomain.CurrentDomain.FriendlyName == "NameGivenToMParameter"

如果这是真的,那么您的应用程序显然是使用mono服务运行的(带有给定的参数)。将应用程序域名的值打印到文件中,看看它是否真的有效(对我来说确实有效);)我不知道它是否真的能解决你的问题。

if (Environment.OSVersion.Platform.Equals(PlatformID.Unix)) 
{
}