Доступ к информации о хосте или 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.