2011-06-23 3 views
7

Je suis en train de créer une application Silverlight qui sera facilement déployable sur différents sites Web, et depuis l'application, j'ai besoin d'accéder au domaine/hôte hébergé par Silverlight. à. Donc, je sais que pour les applications dans la fenêtre du navigateur, ce code fonctionne parfaitement:Accéder à l'hôte ou à l'URL dans Silverlight out-of-browser

HtmlPage.Document.DocumentUri.Host; 

Le problème est, j'ai besoin de cette application à installer et être exécuté en mode hors navigateur aussi. Cependant, quand j'appelle le même code en mode OOB, j'obtiens une exception, ce qui est parfaitement normal car SL ne fonctionne pas dans un navigateur. Mais logiquement, l'application SL a été installée quelque part, et j'ai besoin d'accéder à cette URL "origine" (ou du moins, l'hôte d'origine me suffit dans ce projet). Autrement dit, si l'application est installée à partir de http://example.com/example.xap, comment puis-je accéder à la chaîne "http://example.com/example.xap" par programmation alors que je n'ai plus de navigateur? Je ne le saurai pas à l'avance car l'application sera modulaire et sera déployée sur n'importe quel domaine. Est-ce que la création d'un fichier de paramètres dans un stockage isolé et la définition de la chaîne de domaine si ne pas définir la seule option, ou y at-il une manière plus triviale?

Merci, Can.

Répondre

11

Vous pouvez obtenir l'adresse (même dans OOB) en utilisant Application.Current.Host.Source

+0

Merci, il a résolu mon problème. –

+0

J'héberge quelques pages Web sur la même application Web que mon XAP (en fait pour une utilisation dans un contrôle Silverlight WebBrowser), et cela m'a aidé à trouver l'URL par programme. Parfait. –

0

Vous pouvez obtenir l'adresse du Xap à partir du BaseAddress d'une nouvelle instance d'un WebClient.

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

Le BaseAddress est initialisées witth l'adresse d'origine de l'application et fonctionnera dans un OOB.

Questions connexes