如何判断.Net应用程序是作为桌面应用程序运行还是作为服务运行?
我们正在尝试使用Fitnesse测试我们的应用程序,它将应用程序作为服务加载然后调用它...但是当按下模态错误框时它会爆炸..我想要检查一下如果它在服务中运行,如果它是,我想抛出异常,所以我们的测试将失败。
有没有办法做到这一点,除了将参数传递到某个地方,说它是由FitNesse启动的?
答案 0 :(得分:5)
如果您只想确定是否显示UI控件,可以使用:
if( Environment.UserInteractive )
{
// Show UI
}
答案 1 :(得分:0)
我认为这将有效(没有方便的地方来测试我的航空代码):
// requires a 'using System.ServiceProcess' statement
type = Assembly.GetExecutingAssembly().EntryPoint.DeclaringType;
bool isRunningAsAService = type.IsSubclassOf(typeof(ServiceBase));