有没有一种巧妙的方法可以部署我的 silverlight 应用程序并以编程方式更改设置

本文关键字:silverlight 我的 部署 应用程序 编程 设置 方式更 一种 方法 有没有 | 更新日期: 2023-09-27 18:30:43

我对Web开发相当陌生。 我正处于部署点(用于测试)。 我有几个地方(可能是 4 个地方)我不得不在应用程序中添加一个非相对的 URI。 所以现在,在部署时,这些需要改变。

有没有一种巧妙的方法来解决这个问题? 通过光滑,我的意思是不要手动浏览应用程序并更改 URI 或一揽子查找和替换(风险太大)。 我现在只有 4 个地方要更改,但这很容易更改并导致部署问题。

我正在使用Microsoft技术堆栈。 Silverlight、ASP.NET、RIA等 开发是在Visual Studio 2010中完成的。

我注意到 Web 项目对 web.config 进行了漂亮的转换......这很好。 银光资源是否有等效的机制? 还有其他方法吗?

有什么想法吗?

有没有一种巧妙的方法可以部署我的 silverlight 应用程序并以编程方式更改设置

我刚刚发现了这篇关于堆栈溢出的文章,内容涉及使用 MS 的内置转换机制进行服务引用。 但实际上...它对于任何 XML 文件都是通用的。 这意味着我能够将相同的概念应用于包含某些设置的自定义 XML 文件......而且效果很好。

请参阅随机解决方案。 这不是选定的解决方案,但它比我见过的任何其他解决方案都要好得多。

一种方法是从宿主网页将参数传递给 Silverlight 应用程序。

<object ....>
... 
<param name="initParams" value="prm1=http://google.com,prm2=http://bing.com" />
...
</object>

并从您的 Silverlight 应用程序访问(App.xaml.csApplication_Startup方法):

foreach (var item in e.Initparams)
{
  this.Resources.Add(item.Key, item.Value);
}

访问参数:

var prm1 = App.Current.Resources["prm1"].ToString();

它不是太漂亮,但你可以检查 DEBUG 定义(默认情况下在调试模式构建中定义):

#if (DEBUG)
    myUrl = "http://www.google.com";
#else
    myUrl = "http://www.bing.com";
#endif