2

Silverlight アプリケーションでは、アプリケーションがホストされている Web サイトに接続する必要がある場合があります。Silverlight アプリケーションで Web サイトのハード コーディングを避けるために、次のようなコードを使用します。

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

WebClientXAP ファイルの URL にアクセスするためだけにインスタンスを作成するのは非常に面倒です。代替手段はありますか?

4

4 に答える 4

9

私が使う、

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

文字列の解析は必要ありません! この方法を使用して、完全な URL を作成することもできます。たとえば、

Uri logoImageUri = new Uri(Application.Current.Host.Source, "/images/logo.jpg");
// Example result:
//  http://www.example.com/images/logo.jpg
于 2009-10-30T01:52:54.557 に答える
0

私の場合、メインフォルダーで作業していません。h||p://localhost:1234/subfolder で作業しています。Visual Studio IDE での作業中は問題ありません。しかし、サーバーに移動すると失敗します。次の行

Application.Current.Host.Source

public 関数を使用して、次のような結果に置き換えることができます。

Public Sub AppPathWeb()
    Res = Application.Current.Host.Source.AbsoluteUri.Substring(0, Application.Current.Host.Source.AbsoluteUri.LastIndexOf("/") + 1)
    Return New Uri(Res) 
End Sub

結果として、このようにファイルをキャッチできます

MyImage = New Uri(AppPathWeb, "HelloWorld.jpg")

その結果、サーバー上の URL は h||p://mydomain.com/mysubfolder/HelloWorld.jpg に移動します」

幸運を

ゴールデンジェルch

于 2010-06-29T14:45:57.593 に答える