在.net1.x中,,異步WebService異步調(diào)用的一般方式為調(diào)用方法XX對應(yīng)的BeginXX方法來完成,其過程類似于異步委托的使用,。詳情請點(diǎn)此了解,。
在.net2.0中(準(zhǔn)確的說是vs 2005中),,異步WebService異步調(diào)用的方式的例子: void DoSomethingTest()
{ localhost.Service service = new WindowsApp.localhost.Service(); service.HelloWorldCompleted += new WindowsApp.localhost.HelloWorldCompletedEventHandler(service_HelloWorldCompleted); // do Asyn calling here service.HelloWorldAsync(); } void service_HelloWorldCompleted(object sender, WindowsApp.localhost.HelloWorldCompletedEventArgs e) { if (e.Error == null) { MessageBox.Show(e.Result); } else { MessageBox.Show(e.Error.Message); } } 服務(wù)器端代碼 [WebService(Namespace = "http:///")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Service : System.Web.Services.WebService { public Service () { } [WebMethod] public string HelloWorld() { return "Hello World"; } } 很簡單,沒有了AsyncCallback,、IAsyncResult 這兩個(gè)煩人的東西,,調(diào)用的代碼變得簡潔、優(yōu)雅了,,而且可以從e.Result得到強(qiáng)類型的返回值(上例為"Hello World"),。但是,有興趣的話,,可以看看vs 2005生成的Referance.cs文件,,那可比2003中的復(fù)雜很多。其中可以看到System.ComponentModel.AsyncCompletedEventArgs ,、 System.Threading.SendOrPostCallback(delegate)這兩個(gè)在 .net 1.x 中沒有的“怪物”,,估計(jì)用到的地方還不止WebService客戶端。有時(shí)間再研究看看,。 分類: ASP.NET/WEB
0
0
(請您對文章做出評價(jià))
發(fā)表評論
|
|