我正在开发Silverlight 4应用程序,我想在出于测试目的在本地部署该应用程序时启用/禁用某些功能。

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

我当前执行此操作的方式是通过检查主机名。例如,在我的App.xaml.cs文件中:

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


有一个更好的方法吗?

最佳答案

我创建两个html页面来测试我的代码,例如mysilverlightpage.html和myslpage.notracking.html。然后在myslpage.notracking.html的对象嵌入标记中,添加一个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
}


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

10-06 12:48