2011-06-23 12 views
7

Farklı web sitelerine kolayca yüklenebilecek bir Silverlight uygulaması yapıyorum ve uygulama içinden, Silverlight'ın barındırıldığı domain/host'a erişmem gerekiyor en. Yani, tarayıcı penceresi içindeki uygulamalar için, bu kod sorunsuzca çalışacaktır biliyorum:Access host veya URL bilgisi Silverlight tarayıcı dışında

HtmlPage.Document.DocumentUri.Host; 

sorun şu ki, bu uygulama yüklü olması ve çok-dışı tarayıcısı modunda çalıştırılması gerekir. Ancak, aynı kodu OOB modunda çağırdığımda, bir tarayıcıda çalışmayan SL gibi bir istisna elde ederim. Ancak, mantıksal olarak, SL uygulaması bir yerden kuruldu ve bu "kökeni" URL'ye erişmem gerekiyor (ya da en azından, ana bilgisayar bu projede benim için yeterlidir). Basitçe, eğer uygulama http://example.com/example.xap'dan yüklüyse, tarayıcıdan çıkarken programlı olarak "http://example.com/example.xap" dizesine nasıl erişebilirim? Uygulama modüler olacak ve herhangi bir alana dağıtılacağı için bunu önceden bilmeyeceğim. İzole depolamada bir ayar dosyası oluşturuluyor ve tek seçeneği ayarlamazsanız etki alanı dizesini ayarlıyor mu, yoksa daha önemsiz bir yolu var mı?

Teşekkürler, Can.

cevap

11

Sen Application.Current.Host.Source

+0

Teşekkür kullanarak (hatta OOB'de) adresi alabilirsiniz, benim sorun çözüldü. –

+0

Aynı web uygulamasında birkaç web sayfasını barındıran XAP'ım (aslında bir Silverlight WebBrowser denetiminde kullanmak için) ve bu program programsal olarak URL'yi bulmama yardımcı oldu. Mükemmel. –

0

Xap'in adresini, WebClient'un yeni bir örneğinin BaseAddress sayfasından alabilirsiniz.

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

BaseAddress

uygulama başlangıç ​​adresinizi witth başlangıca getirilir ve bir OOB'de çalışacaktır.

İlgili konular