WCF多个协定实现

来源:互联网 发布:叶子正品软件 编辑:程序博客网 时间:2024/06/05 13:29
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.ServiceModel;using System.ServiceModel.Description;namespace WcfDemo1{    /// <summary>      /// 实现服务协定接口的服务类      /// </summary>      class MyService : IService1, IService2, IService3    {        /// <summary>        /// 服务器端        /// </summary>        /// <param name="args"></param>        static void Main(string[] args)        {            using (ServiceHost host = new ServiceHost(typeof(MyService), new Uri("http://localhost:8001/service")))            {                WSHttpBinding binding = new WSHttpBinding();                binding.Name = "MyBinding";                binding.Security.Mode = SecurityMode.None;                host.AddServiceEndpoint(typeof(IService1), binding, "mysv1");                host.AddServiceEndpoint(typeof(IService2), binding, "mysv2");                host.AddServiceEndpoint(typeof(IService3), binding, "mysv3");                ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();                behavior.HttpGetEnabled = true;                host.Description.Behaviors.Add(behavior);                host.Opened += (s, a) => Console.WriteLine("服务已启动。");                try                {                    host.Open();                }                catch (Exception ex)                {                    Console.WriteLine(ex.Message);                }                Console.ReadKey();                host.Close();            }        }        string IService1.SayHelloA()        {            return "你好,这是第一个服务协定。";        }        string IService2.SayHelloB()        {            return "你好,这是第二个服务协定。";        }        string IService3.SayHelloC()        {            return "你好,这是第三个服务协定。";        }      }    [ServiceContract]    public interface IService1    {        [OperationContract]        string SayHelloA();    }    [ServiceContract]    public interface IService2    {        [OperationContract]        string SayHelloB();    }    [ServiceContract]    public interface IService3    {        [OperationContract]        string SayHelloC();    }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Client{    class Program    {        /// <summary>        /// 客户端 添加服务引用        /// </summary>        /// <param name="args"></param>        static void Main(string[] args)        {            WS.Service1Client client1 = new WS.Service1Client();            Console.WriteLine(client1.SayHelloA());            WS.Service2Client client2 = new WS.Service2Client();            Console.WriteLine(client2.SayHelloB());            WS.Service3Client client3 = new WS.Service3Client();            Console.WriteLine(client3.SayHelloC());            Console.ReadKey();          }    }}


原创粉丝点击