在Silverlight浏览器外访问主机或URL信息

时间:2011-06-23 01:35:00

标签: .net silverlight out-of-browser

我正在构建一个可轻松部署到不同网站的Silverlight应用程序,并且从应用程序内部,我需要访问Silverlight所在的域/主机。所以,我知道浏览器窗口中的应用程序,这段代码完全可以工作:

HtmlPage.Document.DocumentUri.Host;

问题是,我需要安装此应用程序并在浏览器外模式下运行。但是,当我在OOB模式下调用相同的代码时,我得到一个异常,这完全正常,因为SL没有在浏览器中运行。但从逻辑上讲,SL应用程序已经从某个地方安装,我需要访问该“原始”URL(或者至少,原始主机对我来说在这个项目中已经足够了)。简单地说,如果应用程序是从http://example.com/example.xap安装的,那么如何在浏览器耗尽时以编程方式访问字符串“http://example.com/example.xap”?我不会事先知道这个,因为该应用程序将是模块化的并且可以部署到任何域。是在隔离存储中创建设置文件并设置域字符串(如果没有设置唯一选项),还是有更简单的方法?

谢谢,可以。

2 个答案:

答案 0 :(得分:12)

您可以使用Application.Current.Host.Source

获取地址(即使在OOB中)

答案 1 :(得分:0)

您可以从BaseAddress的新实例的WebClient获取Xap的地址。

 WebClient client = new WebClient();
 string xapAddress = client.BaseAddress;

BaseAddress初始化为应用程序原始地址,并将在OOB中工作。