博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wcf服务契约的重载
阅读量:5899 次
发布时间:2019-06-19

本文共 3264 字,大约阅读时间需要 10 分钟。

a. 服务端1.服务端 契约用OperationContract的Name实现重载using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.ServiceModel;using System.Text;    namespace WCF.Chapter2.Overloading.Host    {        [ServiceContract]        public interface IContract        {            [OperationContract(Name = "say1")]            string say();            [OperationContract(Name = "say2")]            string say(string str);        }    }2.服务实现using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.ServiceModel;using System.Text;namespace WCF.Chapter2.Overloading.Host.Service{    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“Service1”。    public class Service1 : IContract    {        public string say()        {            return "老鼠扛刀,满街找猫";        }        public string say(string str)        {            return str;        }    }}3.服务寄宿using System;using System.ServiceModel;using WCF.Chapter2.Overloading.Host.Service;namespace WCF.Chapter2.Overloading.Host{    class Program    {        static void Main(string[] args)        {            using (ServiceHost host = new ServiceHost(typeof(Service1)))            {                host.Opened += delegate                {                    Console.WriteLine("服务已开启...");                };                host.Open();                Console.ReadLine();            }            Console.WriteLine("服务已关闭...");            Console.ReadLine();        }    }}4.终结点设置
b. 客户端1.客户端契约 这个很重要需要和服务端分开不能用同一个契约,而是实现了一个等效契约,所以此处说明终结点三要素A,B,C 的A,B必须一模一样但是C只要等效就可以using System;using System.ServiceModel;namespace WCF.Chapter2.Overloading.Client{ [ServiceContract] public interface IContract { [OperationContract(Name = "say1")] string say(); [OperationContract(Name = "say2")] string say(string str); }}2.客户端代理 本质也是channelfactory.createchannelusing System;using System.ServiceModel;namespace WCF.Chapter2.Overloading.Client{ public class ClientProxy : ClientBase
, IContract { public ClientProxy() { } public ClientProxy(string configurationName) : base(configurationName) { } public string say() { return base.Channel.say(); } public string say(string str) { return base.Channel.say(str); } }}3.客户端终结点配置
4.调用代码using System;using System.ServiceModel;namespace WCF.Chapter2.Overloading.Client{ public class ClientProxy : ClientBase
, IContract { public ClientProxy() { } public ClientProxy(string configurationName) : base(configurationName) { } public string say() { return base.Channel.say(); } public string say(string str) { return base.Channel.say(str); } }}

 

转载于:https://www.cnblogs.com/kexb/p/7436397.html

你可能感兴趣的文章
AMD与天津海光合资生产x86服务器芯片
查看>>
提升CRM实施成功率
查看>>
雅虎开源了TensorFlowOnSpark
查看>>
ERP实施应立足于两点
查看>>
网络安全保险在欧洲更受欢迎
查看>>
如何处理IT事件管理以避免混乱
查看>>
投资半导体产业不能只想赚快钱
查看>>
物联网确保消费者隐私安全 才能起飞
查看>>
iPhone升級iOS 10变砖 可用iTunes恢复
查看>>
揭秘使用免费WiFi的真实代价
查看>>
思科:网络可见化仍然是安全的数字化转型改造的关键
查看>>
《交互式程序设计 第2版》一2.3.2 数组
查看>>
移动互联网金融app 存在信息安全问题
查看>>
Android 开发中使用 SQLite 数据库
查看>>
Android后门GhostCtrl,完美控制设备任意权限并窃取用户数据
查看>>
IBM郭继军:机器学习配合行业经验将帮助企业成就未来
查看>>
Rambus9000万美元收购Inphi存储器互联业务
查看>>
3GPP一反常态提前制定NB-IoT标准有何深意?
查看>>
泉州电信推进渠道互联网化转型
查看>>
《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》—第3章3.6节识别操作系统...
查看>>