7

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

Type.GetType("Mono.Runtime")告诉我我正在单声道运行,所以那部分没问题。但是Environment.UserInteractive在单声道下似乎总是错误的,所以我很难弄清楚我是否真的在单声道服务2下运行——没有控制台/终端。

4

2 回答 2

5

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

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

AppDomain.CurrentDomain.FriendlyName == "NameGivenToMParameter"

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

于 2012-01-30T17:24:26.687 回答
0
if (Environment.OSVersion.Platform.Equals(PlatformID.Unix)) 
{
}
于 2017-02-06T09:38:25.803 回答