2011-06-23 16 views
7

私はSilverlightアプリケーションを構築しています。これは異なるWebサイトに簡単に展開でき、アプリケーション内からSilverlightがホストされているドメイン/ホストにアクセスする必要がありますで。だから、私はこのコードは完璧に動作します、ブラウザウィンドウ内のアプリを知っている:SilverlightのブラウザからアクセスするホストまたはURL情報

HtmlPage.Document.DocumentUri.Host; 

問題がある、私はこのアプリをインストールすると、あまりにもブラウザー外実行モードで実行する必要があります。しかし、OOBモードで同じコードを呼び出すと、例外が発生します。これは、ブラウザでSLが実行されていないため完全に正常です。しかし、論理的には、SLアプリはどこかからインストールされており、その "オリジナル" URLにアクセスする必要があります(少なくとも、このプロジェクトでは元のホストで十分です)。簡単に言えば、アプリがhttp://example.com/example.xapからインストールされている場合、ブラウザーを使い果たしている間、非常に「http://example.com/example.xap」という文字列にプログラムでアクセスできますか?私は、アプリケーションがモジュール化され、どのドメインにも展開されるため、これを事前に知ることはできません。隔離されたストレージに設定ファイルを作成していて、唯一のオプションが設定されていない場合はドメイン文字列を設定していますか、それとももっと簡単な方法ですか?

ありがとうございます。

答えて

11

Application.Current.Host.Source

+0

ありがとう、それは私の問題を解決しました。 –

+0

私はXAPと同じWebアプリケーションでいくつかのWebページをホスティングしています(実際にSilverlight WebBrowserコントロールで使用しています)。これはプログラムでURLを見つけるのに役立ちました。完璧。 –

0

WebClientの新しいインスタンスのBaseAddressからXapのアドレスを取得できます。

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

BaseAddressは、アプリケーション元アドレスwitth初期化され、OOBで動作します。

関連する問題