【引自jillzhang的博客】本文目的:阅读本文,您能了解以下知识
·什么是操作重载?操作重载有什么好处
·WCF的服务端如何解决操作重载的问题?
·WCF的客户端如何解决操作重载问题?
什么是操作重载?操作重载有什么好处
重载指的是在同一个类,接口或者结构中包含多个同名的 方法,而这些方法的参数列表或者返回值各不相同.使用它的好处在于提高模型的强壮性和通用性,使模型在一个可维护统一高度上运行,其功能和返回依赖于传递的参数. 在传统的程序开发中,我们程序员经常使用这种技术,比如一个有一个功能既能够计算两个整数的和,又能计算两个双精度数的和,这样的需求,我们往往会按下面这样书写代码:
|
而在WCF中,还能不能这么干呢?不能!为什么呢?WCF中无论是服务端还是客户端,如果单拿出来一个都是支持操作重载的,但是客户端代理生成的依据却是WSDL,而WSDL是不支持操作重载的,另外客户端调用服务端的一个操作的必须先要确定两个要素:1)操作所属的服务是哪一个?2) 操作在服务中的名称是什么?这样的话,向传统应用程序程序那样重载就会出现问题!
WCF的服务端如何解决操作重载的问题?
如果按照下面的代码来实现一个服务:
服务契约
|
|
随后,我们启动托管程序,发现代码在运行到ServiceHost host = new ServiceHost(typeof(Service),new Uri("net.tcp://127.0.0.1:12345"))的时候,发生如下的异常:
![]() |
| 图1 |
这个异常提示我们,同一个协定之中不能存在相同的操作,在WCF中操作重载是不显示适用的。而且问题不在于编译阶段,而在于托管阶段。
但是我们能通过一些改进的手段来获取WCF对操作重载的支持。我们先把服务契约的定义更改为如下的代码:
[ServiceContract]
public interface IService
{
[OperationContract(Name="AddInt")]
int Add(int a, int b);
[OperationContract(Name="AddDouble")]
double Add(double a, double b);
}
| 共2页: 1 [2] 下一页 | ||
|
|
||||
| · 勇闯IT培训黑色围城 · 见证中国网络安全二十年 · 技术人求职简历完备手册 · 华为员工自杀频频拷问.. · 视频访谈:网管员如何踏.. · 首届中国IT工程师生态.. · 思科全球CEO钱伯斯第七.. · 北漂技术人90天求职纪实 |
· 2007年互联网大会 · 龙芯要做中国的“奔腾” · IPv6协议--拓展网络无.. · 国际文档格式标准开战 · 微软出价446亿美元收购.. · 贝恩资本携手华为22亿.. · Linux——从菜鸟到高手 · SOA 面向服务架构 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · 中间件应用技术专题 · SQL Server入门到精通 · 国际文档格式标准开战 |
· 路由器设置与口令恢复 · Linux防火墙 · 打造安全服务器 · SOA 面向服务架构 · PHP开发应用手册 · ADSL应用面面俱到 · 入侵防护系统(IPS)初探 · ADSL应用面面俱到 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · iSCSI应用与发展 · RAID——磁盘阵列基础 · 路由器设置与口令恢复 |
· SOA 面向服务架构 · 了解统一威胁管理(UTM).. · ADSL应用面面俱到 · ADSL应用面面俱到 · PHP开发应用手册 · 中间件应用技术专题 · 交换机故障解决指南 · OSPF路由协议专栏 |
|||