如何检测我在mono-service2下运行? (在C#/。NET 3.5中,在ubuntu 11上运行mono 2.6.7)
Type.GetType("Mono.Runtime")
告诉我我在单声道中运行,所以这部分还可以。但Environment.UserInteractive
在单声道下似乎总是假的,所以我很难弄清楚我是否真的在mono-service2下运行 - 没有控制台/终端。
答案 0 :(得分:5)
Environment.UserInteractive
是正确的解决方案,但不幸的是,目前尚未在Mono中实现。我有一天可能会看一下并升级这个答案;)
然而,为了检测你,你可以使用hacky解决方案:mono-service
参数中m
的名称将成为该服务的应用程序域的友好名称(至少根据{ mono-service
的{3}}。因此,使用此参数运行时,您应该能够测试:
AppDomain.CurrentDomain.FriendlyName == "NameGivenToMParameter"
如果确实如此,那么您的应用程序显然是使用单一服务运行(使用给定参数)。将应用程序域名的值打印到文件以查看它是否真的有效(它适用于我);)我不知道它是否真的可以解决您的问题。
答案 1 :(得分:0)
if (Environment.OSVersion.Platform.Equals(PlatformID.Unix))
{
}