放置WebRequest.RegisterPrefix()的位置

时间:2010-09-21 19:08:40

标签: c# silverlight

这句话在哪里?我是否将它放在构造函数中,或者每次进行异步请求时是否在方法中调用它?

3 个答案:

答案 0 :(得分: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);

每个网络堆栈都会为您带来不同的好处。例如,ClientHttp可以更轻松地调用REST服务。以下是一些细节:

How to: Specify Browser or Client HTTP Handling

答案 1 :(得分:2)

你应该在静态构造函数中调用它一次。

答案 2 :(得分:1)

您可以在App.xaml.cs中找到的Silverlight应用程序启动事件中将其称为Application_Startup( object sender, StartupEventArgs e)