我正在开发一个Silverlight 4应用程序,我想在本地部署应用程序时启用/禁用某些功能以进行测试。
例如,当我在本地测试应用程序时,将禁用指标收集,以避免向我的数据库发送“实时”指标。
我目前正在这样做的方法是检查主机名。例如,在我的 App.xaml.cs 文件中:
if (HtmlPage.Document.DocumentUri.Host == "localhost")
{
// Do stuff only when deployed locally
}
有更好的方法吗?
答案 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语句。当您准备移动应用程序时取出符号。 (或者以相反的方式执行,因为您实际上禁用了代码)