如何知道我的Silverlight应用程序是否在本地运行?

时间:2012-01-04 16:32:24

标签: c# silverlight silverlight-4.0

我正在开发一个Silverlight 4应用程序,我想在本地部署应用程序时启用/禁用某些功能以进行测试。

例如,当我在本地测试应用程序时,将禁用指标收集,以避免向我的数据库发送“实时”指标。

我目前正在这样做的方法是检查主机名。例如,在我的 App.xaml.cs 文件中:

if (HtmlPage.Document.DocumentUri.Host == "localhost")
{
    // Do stuff only when deployed locally
}

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

我创建了两个html页面来测试我的代码,例如 mysilverlightpage.html myslpage.notracking.html 。然后在myslpage.notracking.html的object embed标签中添加一个initparam:

<param name="InitParams" value="noTracking=true" />

然后在我的代码中,我检查了我的InitParams参数:

if (!App.Current.Host.InitParams.ContainsKey("noTracking") || bool.Parse(App.Current.Host.InitParams["noTracking"]) == false)
{
    // perform tracking here
}

现在可以检查发布版本的功能,而不会使跟踪指标无效。

答案 1 :(得分:0)

另一种解决方案是在Silverlight项目的Build选项卡中定义自己的Conditional Compilation符号(例如:LOCAL),然后使用#if语句。当您准备移动应用程序时取出符号。 (或者以相反的方式执行,因为您实际上禁用了代码)