2011-06-23 6 views
7

Estoy compilando una aplicación Silverlight que se podrá implementar fácilmente en diferentes sitios web, y desde la aplicación, necesito acceder al dominio/host que aloja Silverlight a. Por lo tanto, sé para aplicaciones dentro de la ventana del navegador, el código sería perfectamente trabajar:Acceda a la información de host o URL en Silverlight fuera del navegador

HtmlPage.Document.DocumentUri.Host; 

El problema es que necesito esta aplicación para instalarse y ejecutarse en modo fuera del navegador también. Sin embargo, cuando llamo al mismo código en modo OOB, obtengo una excepción, que es perfectamente normal que SL no se ejecute en un navegador. Pero lógicamente, la aplicación SL se ha instalado desde algún lugar, y necesito acceder a esa URL de "origen" (o al menos, el host original es suficiente para mí en este proyecto). En pocas palabras, si la aplicación está instalada desde el http://example.com/example.xap, ¿cómo puedo acceder a la misma cadena "http://example.com/example.xap" programáticamente mientras me quedo sin navegador? No sabré esto de antemano ya que la aplicación será modular y se desplegará en cualquier dominio. ¿Está creando un archivo de configuración en almacenamiento aislado y configurando la cadena de dominio si no se establece la única opción, o hay una forma más trivial?

Gracias, Can.

Respuesta

11

Puede obtener la dirección (incluso en OOB) usando Application.Current.Host.Source

+0

Gracias, resolvió mi problema. –

+0

Estoy alojando algunas páginas web en la misma aplicación web que mi XAP (en realidad, para usar en un control Silverlight WebBrowser), y esto me ayudó a encontrar la URL mediante programación. Perfecto. –

0

Puede adquirir la dirección de Xap a partir del BaseAddress de una nueva instancia de WebClient.

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

El BaseAddress se inicializa descarne la dirección de origen y la aplicación funcionará en un fuera de banda.

Cuestiones relacionadas