如果.Net应用程序作为服务或应用程序运行,请告诉我们?

时间:2009-12-08 14:48:30

标签: .net testing service modal-dialog

如何判断.Net应用程序是作为桌面应用程序运行还是作为服务运行?

我们正在尝试使用Fitnesse测试我们的应用程序,它将应用程序作为服务加载然后调用它...但是当按下模态错误框时它会爆炸..我想要检查一下如果它在服务中运行,如果它是,我想抛出异常,所以我们的测试将失败。

有没有办法做到这一点,除了将参数传递到某个地方,说它是由FitNesse启动的?

2 个答案:

答案 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));