

 client:
 client:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;using System.ServiceModel.Channels;using HelloService;namespace HelloClicent{  class Program  {    static void Main(string[] args)    {      using (HelloProxy proxy = new HelloProxy())      {        //利用代理调用服务        Console.WriteLine(proxy.Say("张三"));        Console.ReadLine();      }    }  }  //硬编码定义服务契约  [ServiceContract]  interface IService  {    //服务操作    [OperationContract]    string Say(string name);  }  /// <summary>  /// 客户端代理类型  /// </summary>  class HelloProxy : ClientBase<IHelloService>, IService  {    //硬编码定义绑定    public static readonly Binding HelloBinding = new NetNamedPipeBinding();    //硬编码定义地址    public static readonly EndpointAddress HelloAddress = new EndpointAddress(new Uri("net.pipe://localhost/Hello"));    /// <summary>    /// 构造方法    /// </summary>    public HelloProxy() : base(HelloBinding, HelloAddress) { }    public string Say(string name)    {      //使用Channel属性对服务进行调用      return Channel.SayHello(name);    }  }}
servicehost:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;using System.ServiceModel.Channels;namespace HelloServiceHost{  class Program  {    static void Main(string[] args)    {      using (MyHelloHost Host = new MyHelloHost())      {        Host.open();        Console.ReadLine();      }    }  }  public class MyHelloHost : IDisposable  {    /// <summary>    /// 构造方法调用创建服务方法    /// </summary>    public MyHelloHost()    {      CreateServiceHost();    }    /// <summary>    /// 定义一个服务对象    /// </summary>    private ServiceHost _myhost;    /// <summary>    /// 定义一个基地址    /// </summary>    public const string BaseAddress = "net.pipe://localhost";    /// <summary>    /// 定义一个可选地址    /// </summary>    public const string HelloServiceAddress = "Hello";    //服务契约实现类型    public static readonly Type ServiceType = typeof(HelloService.HelloService);    //服务契约接口类型    public static readonly Type ContractType = typeof(HelloService.IHelloService);    /// <summary>    /// 定义一个服务绑定    /// </summary>    public static readonly Binding hellobinding = new NetNamedPipeBinding();    /// <summary>    /// 构造服务对象    /// </summary>    protected void CreateServiceHost()    {      //创建服务对象      _myhost = new ServiceHost(ServiceType, new Uri[] { new Uri(BaseAddress) });      //添加终节点      _myhost.AddServiceEndpoint(ContractType, hellobinding, HelloServiceAddress);    }    /// <summary>    /// 获取ServiceHost    /// </summary>    public ServiceHost Myhost    {      get { return _myhost; }    }    /// <summary>    /// 打开服务方法    /// </summary>    public void open()    {      Console.WriteLine("开始启动服务........");      _myhost.Open();      Console.WriteLine("服务已经启动........");    }    /// <summary>    /// 实现IDispose接口,销毁服务数组对象    /// </summary>    public void Dispose()    {      if (_myhost != null)      {        (_myhost as IDisposable).Dispose();      }    }  }}
service:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;namespace HelloService{  public class HelloService:IHelloService  {    /// <summary>    /// 打招呼方法    /// </summary>    public string SayHello(string name)    {      return name  ":你好!";    }  }}

 
  
					
				
评论