我们遇到的一个常见问题是必须根据我们是在本地测试还是为构建服务器提交代码来切换下面的代码。
/// <summary>
/// Main entry point to the application.
/// </summary>
public static void Main()
{
// Don't forget to uncomment this if committing (!)
//var servicesToRun = new ServiceBase[] {new myservice()};
//ServiceBase.Run(servicesToRun);
// and re-comment this
RunAsConsoleApp();
}
如果有一种方法可以在代码中测试以告知输出类型,并且避免所有“哦,不,我提交并破坏了构建”的时间浪费,那将非常有用。
if (IsConsoleApp)
{
Using(var host= new ServiceHost(typeof(myservice))
{
host.Open();
etc....
}
}
else
{
var servicesToRun = new ServiceBase[] {new myservice()};
ServiceBase.Run(servicesToRun);
}