使用WebClient.BaseAddress在Silverlight中获取基本URL的替代方法

Mar*_*age 2 url silverlight webclient

在Silverlight应用程序中,我有时需要连接到托管应用程序的网站.为了避免在我的Silverlight应用程序中对网站进行硬编码,我使用如下代码:

WebClient webClient = new WebClient();
Uri baseUri = new Uri(webClient.BaseAddress);
UriBuilder uriBuilder = new UriBuilder(baseUri.Scheme, baseUri.Host, baseUri.Port);
// Continue building the URL ...
Run Code Online (Sandbox Code Playgroud)

WebClient为了访问XAP文件的URL,创建实例感觉非常笨拙.还有其他选择吗?

Ben*_*n M 9

Application.Current.Host.Source 检索XAP的URI.

  • 警告:根据我的经验,如果将.XAP文件重命名为.ZIP(以绕过托管MIME类型限制),则无法按预期工作.只是要注意的事情 - 更多信息博客http://conceptdev.blogspot.com/2009/03/xap-zip-silverlight-gets-confused.html (2认同)

the*_*zda 9

我用,

Uri baseUri = new Uri(Application.Current.Host.Source, "/");
// Example results:
//  http://www.example.com:42/
//  or
//  https://www.example.com/
Run Code Online (Sandbox Code Playgroud)

不需要字符串解析!您也可以使用此方法创建完整的Url,例如,

Uri logoImageUri = new Uri(Application.Current.Host.Source, "/images/logo.jpg");
// Example result:
//  http://www.example.com/images/logo.jpg
Run Code Online (Sandbox Code Playgroud)