2010-09-21 4 views
2

Куда направляется это утверждение? Я помещаю его в свой конструктор или я вызываю его в методе каждый раз, когда я делаю асинхронный запрос?Куда поместить WebRequest.RegisterPrefix()

+0

У вас его нет в продаже? 'WebRequest.RegisterPrefix' - это расширенная функция, которая редко используется. Что ты пытаешься сделать? – SLaks

+0

Я просто следую документам MSDN о том, как вызывать удаленный веб-сервис, который возвращает json. MSDN говорит, чтобы сделать это, но никогда не говорит, где. –

+0

Я вижу. Я никогда не использовал Silverlight, поэтому я не знал об этом использовании. – SLaks

ответ

6

Вот пример обсуждения.

WebRequest.RegisterPrefix("http://xamlwonderland.com", 
     WebRequestCreator.ClientHttp); 

Теперь, когда я назвал метод RegisterPrefix все последующие запросы сети к этой подобласти (blog.wpfwonderland.com) будет использовать клиент сетевой стек, а не стек браузера.

Вы можете вызвать RegisterPrefix в любом месте своего кода. Нет никакого вреда в вызове этого метода несколько раз, но, согласно документу, вы можете сделать это только один раз для домена. На самом деле ваше приложение Silverlight может иметь некоторые сетевые вызовы с использованием стека браузера и других, используя стек клиента. Предположим, вы хотите, чтобы трафик HTTPS использовал стек браузера и ваш HTTP-трафик клиента.

WebRequest.RegisterPrefix("http://":, WebRequestCreator.ClientHttp); 
WebRequest.RegisterPrefix("https://", WebRequestCreator.BrowserHttp); 

Каждый сетевой стек дает вам различные преимущества. Например, вызов служб REST проще с ClientHttp. Вот некоторые подробности:

How to: Specify Browser or Client HTTP Handling

+0

Что произойдет, если я не укажу RegisterPrefix, тогда сгенерируйте запрос https следующим образом: HttpWebRequest request = (HttpWebRequest) WebRequestCreator.ClientHttp.Create (новый Uri (requestUrl)); – Fabii

+0

Я спрашиваю, я вижу, что Arg_NullReferenceException происходит в производстве, но я не могу дублировать его dev. – Fabii

2

Вы должны называть его ровно один раз, возможно, в статическом конструкторе.

1

Вы можете назвать его в Silverlight случае запуска приложений найдены в App.xaml.cs в Application_Startup(object sender, StartupEventArgs e).

Смежные вопросы