Доступ к информации о хосте или URL-адресе в Silverlight вне браузера

Я создаю приложение Silverlight, которое будет легко развертываться на разных веб-сайтах, и изнутри приложения мне нужно получить доступ к домену / хосту, на котором размещен Silverlight. Итак, я знаю, что для приложений в окне браузера этот код будет отлично работать:

HtmlPage.Document.DocumentUri.Host;

Проблема в том, что мне нужно, чтобы это приложение было установлено и запущено в режиме без браузера. Однако, когда я вызываю тот же код в режиме OOB, я получаю исключение, которое совершенно нормально, так как SL не работает в браузере. Но, по логике вещей, приложение SL было установлено откуда-то, и мне нужно получить доступ к этому "исходному" URL (или, по крайней мере, мне достаточно оригинального хоста в этом проекте). Проще говоря, если приложение установлено с http://example.com/example.xap, как я могу получить программный доступ к самой строке " http://example.com/example.xap", не запуская браузер? Я не буду знать об этом заранее, так как приложение будет модульным и будет развернуто в любом домене. Создается ли файл настроек в изолированном хранилище и задается ли строка домена, если не задана единственная опция, или существует более простой способ?

Спасибо, могу.

2 ответа

Решение

Вы можете получить адрес (даже в OOB), используя Application.Current.Host.Source

Вы можете получить адрес Xap от BaseAddress свежего экземпляра WebClient,

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

BaseAddress инициализируется с адресом происхождения приложения и будет работать в OOB.

Другие вопросы по тегам