.NET Web Service 偷懒教程

来源:互联网 发布:centos pppoe拨号上网 编辑:程序博客网 时间:2024/05/20 06:50

这是最近一点学习心得,各位轻拍~

使用.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程序中使用服务

添加一个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中使用服务

Silverlight中对服务的调用是异步的,与上面的略有不同。

基本过程与上面类似,只是在调用时应为:

TestService.TestServiceSoapClient client = new TestService.TestServiceSoapClient();

client.EchoCompleted += new EventHandler<TestService.EchoCompletedEventArgs>(client_EchoCompleted);

string str = "Hello~";

client.EchoAsync(str);

 

添加事件处理方法:

void client_EchoCompleted(object sender, TestService.EchoCompletedEventArgs e)

{

        MessageBox.Show(e.Result);

}

 

很简单吧~

 

by Hao Fu

原创粉丝点击