这是最近一点学习心得,各位轻拍~
使用.NET实现客户端与服务器端通信的方法用很多,这里介绍的Web Service是比较容易实现和使用的一种。废话少说,先讲步骤。
打开Visual Studio,新建一个C#的空的ASP.NET Web项目,不妨命名为TestWebService
向新建的项目添加一个Web Service,命名为TestService.asmx
如果使用的是.NET 3.5或以下版本,VS自带Web Service模板,可以省掉上面一步
系统会自动创建TestService.asmx.cs,并且已经把TestService类的声明写好了,我们稍加修改,添加一个简单的Echo方法:
[WebMethod]
public string Echo(string str)
{
return str;
}
把WebService的Namespace改为你自己的域名,最终的代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace TestWebService
{
[WebService(Namespace = "http://localhost/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class TestService : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public string Echo(string str)
{
return str;
}
}
}
运行一下网站,我们便可以在浏览器中看到这个服务的所有接口了,点击链接便可执行相应的方法:
要让这个服务正式投入使用,只需在IIS中部署该网站即可。
添加一个Windows Console项目,命名为TestConsoleApp
右键点击该项目,把该项目设置为StartUp项目
再右键点击该项目,选择Add Service Reference,点击Discover->Services in Solution,将TestService.asmx命名为TestService添加到当前项目的引用中
在Main方法中添加如下代码:
TestService.TestServiceSoapClient client = new TestService.TestServiceSoapClient();
string str = Console.ReadLine();
string ret = client.Echo(str);
Console.WriteLine(ret);
Console.Read();
运行之,程序会回显输入的东西。很简单吧~
Silverlight中对服务的调用是异步的,与上面的略有不同。
基本过程与上面类似,只是在调用时应为:
TestService.TestServiceSoapClient client = new TestService.TestServiceSoapClient();
client.EchoCompleted += new EventHandler
string str = "Hello~";
client.EchoAsync(str);
添加事件处理方法:
void client_EchoCompleted(object sender, TestService.EchoCompletedEventArgs e)
{
MessageBox.Show(e.Result);
}
很简单吧~
by Hao Fu