2011-06-23 17 views
7

Buduję aplikację Silverlight, którą można łatwo rozmieścić na różnych stronach internetowych, a z poziomu aplikacji muszę uzyskać dostęp do domeny/hosta hostowanej przez Silverlight w. Tak, wiem, że dla aplikacji w oknie przeglądarki, kod ten będzie doskonale działa:Dostęp do informacji o hoście lub adresie URL w Silverlight poza przeglądarką

HtmlPage.Document.DocumentUri.Host; 

Problem polega na tym, potrzebuję tej aplikacji należy zainstalować i uruchomić w trybie out-of-przeglądarce zbyt. Jednakże, gdy wywołuję ten sam kod w trybie OOB, otrzymuję wyjątek, który jest całkowicie normalny, ponieważ SL nie działa w przeglądarce. Ale logicznie, aplikacja SL została zainstalowana skądś i potrzebuję dostępu do tego adresu URL "pochodzenia" (lub przynajmniej oryginalny host wystarcza mi w tym projekcie). Mówiąc prościej, jeśli aplikacja jest zainstalowana z wersji http://example.com/example.xap, w jaki sposób mogę programowo uzyskać dostęp do łańcucha "http://example.com/example.xap" podczas uruchamiania przeglądarki? Nie będę o tym wiedział z góry, ponieważ aplikacja będzie modułowa i zostanie wdrożona w dowolnej domenie. Czy tworzysz plik ustawień w odizolowanym magazynie i ustawiasz ciąg domeny, jeśli nie ustawisz jedynej opcji, czy jest bardziej banalny?

Dzięki, Can.

Odpowiedz

11

Można uzyskać adres (nawet w OOB) używając Application.Current.Host.Source

+0

Dzięki, to rozwiązać mój problem. –

+0

Hostuję kilka stron internetowych w tej samej aplikacji internetowej co mój XAP (w rzeczywistości do wykorzystania w kontrolce WebBrowser silverlight), a to pomogło mi programowo znaleźć adres URL. Idealny. –

0

Możesz uzyskać adres Xap z BaseAddress świeżego wystąpienia WebClient.

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

The BaseAddress zostaje zainicjowany witth adres pochodzenia i aplikacja będzie działać w OOB.

Powiązane problemy