WCF步步为营(一):简单示例

本示例通过一个简单的加法服务,来演示WCF最基本的调用。

1. 新建一个空的Solution,命名为WCFSample,后面会把下面的工程添加进这个解决方案

image

2.新建WCF Service Libaray,命名JackWangWcfService

image

3. 右键JackWangWcfService项目,新建命名为Calc的WCF Service

image

4. 系统会生成一个叫ICalc.cs的接口文件和实现这个接口的Calc.cs的类文件。

image

5. 修改ICalc.cs,这里我们提供一个加法行为,ServiceContract 属性指把实现这个接口的类暴露为服务,OperationContract 指实现这个方法的类暴露为服务的方法。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.Text;

 

namespace JackWangWCFService

{   

    [ServiceContract]

    public interface ICalc

    {

        [OperationContract]

        long Add(int a, int b);

    }

}

 

 

6.  上面的接口只是告诉客户端(使用方)能够使用那些服务,下面修改Calc.cs类来实现这个服务

using System;

using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.Text;

 

namespace JackWangWCFService

{   

    public class Calc : ICalc

    {

 

        #region ICalc Members

 

        public long Add(int a, int b)

        {

            return a + b;

        }

 

        #endregion

    }

}

 

7.  实现了服务,但是在哪里提供服务呢?这就需要一个宿主来存放并管理服务,添加一个控制台程序,命名JackWangServiceHost, 添加JackWangWCFService和System.ServiceModel的引用。

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using JackWangWCFService;

using System.ServiceModel;

 

namespace JackWangServiceHost

{

    class Program

    {

        static void Main(string[] args)

        {

            using (ServiceHost host=new ServiceHost(typeof(JackWangWCFService.Calc)))

            {

                host.AddServiceEndpoint(typeof(JackWangWCFService.ICalc), new NetTcpBinding(), "net.tcp://localhost:9000/Add");

                host.Open();

                Console.Out.WriteLine("calc web service started at:"+DateTime.Now.ToString());

                Console.ReadLine();

            }

        }

    }

}

 

 

8.下面演示客户端的调用,添加一个控制台程序,命名JackWangServiceClient,添加System.ServiceModel的引用。

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using JackWangWCFService;

using System.ServiceModel;

 

namespace JackWangServiceHost

{

    class Program

    {

        static void Main(string[] args)

        {

            using (ServiceHost host=new ServiceHost(typeof(JackWangWCFService.Calc)))

            {

                host.AddServiceEndpoint(typeof(JackWangWCFService.ICalc),

                    new NetTcpBinding(), "net.tcp://localhost:9000/Add");

                host.Open();

                Console.Out.WriteLine("calc web service started at:"+DateTime.Now.ToString());

                Console.ReadLine();

            }

        }

    }

}

 

9. 启动JackWangServiceHost。

image

10. 启动JackWangServiceClient

image

 

 

posted @ 2008-07-02 17:13 王德水 阅读(82) 评论(0)  编辑 收藏 所属分类: WCF

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: