之前发现服务暴露给客户端的数据契约的命名空间问题,在于多个服务交互的时候非常不方便,本人也跟Frank Xu Lei还有一些
朋友讨论过这个问题,一直没有好的解决办法.下面我描述一下问题,我有一个服务端项目,命名空间就叫做WCFProject吧...下面
有一个类叫做Customer,标注了数据契约,以此暴露给客户端, 我的UserService服务中有个方法叫做GetUserInfo来获取
Customer的信息,在我客户端通过引用添加服务的时候生成了一个UserService的服务代理 Service_Proxy,在服务端项目这个
Customer实体类的命名空间WCFProject.Customer,而在客户端的时候这个实体类又变成 了UserService.Customer,这时候假
设我又有一个服务需要把这个拿出来的Customer实体类当做他方法的参数进行处理的时候就出现了一个二义性问题,假设这个
服务的名字为Role_Proxy,那么它下面的一个方法需要一个Customer类型的参数进行处理,但是这个这个Customer又属于Role
服务自己命名空间下的,这样就对操作带来了不变,我需要从User服务拿出来的Customer转换成Role服务下面那个Customer的
类型才可以传入进去处理,客户端开发人员往往抱怨我为什么会这样,我也寻找了许多解决的办法,要么把服务端的这个
WCFProject程序集引用进来,要么进行土办法的拆装,之前一直是拆装的方式,不仅浪费了性能,而且有造成了多余的代码量,添加
引用程序集的方式我觉得客户端是我们自己开发还好,如果有一天其他平台需要访问我们服务的时候我们不可能也提供这个程
序集给它吧?这是完全不符合规范的,不知道看了我文章的大牛们有没什么好的解决办法?
小弟文采不好,请各位见谅!!
本文地址:http://garychen.net/?p=56
我的博客:www.garychen.net
分享到:
相关推荐
WCF 返回XML去除默认命名空间实例Demo 解压后根据说明文档修改您的程序。
wcf 中的服务契约代码示例,很好的代码示例
演示了WCF服务怎样进行服务契约的设计,已经怎样生成客户端代理类和服务契约的重载等
演示了WCF服务契约的继承,怎样在WCF中使用多态,各种多态的实现方法。
(3):契约版本处理-WCF课件-《构建WCF面向服务的应用程序》
IUserData 中包含三个操作契约,我们将对admin、admin2 这两个用户授予不同的操作契约的访问权限,在客户使用不同的用户调用服务后,服务器将打印当前的请求服务的用户、请求的资源、服务器对声明的检查、检查结果等...
本篇博客的DEMO,一个WCF服务实现多个数据契约
演示了WCF怎样进行序列化复杂类型,使用DATACONTRACT进行数据序列化。
WCF返回xml格式数据时去除命名空间(比如xmlns="http://schemas.datacontract.org/2004/07/XmlRemoveNamespaceWcfService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance")
对wcf中[DataContract]的描述
对构建WCF面向服务的应用程序第二节【WCF契约设计】的实践代码
WCF数据契约实例源码;从最简单的步骤开始,一步一步学会契约的使用
主要包含了WCF学习中数据契约的实例完成代码,服务器,宿主,客户端结构清晰,对初学者有很好的帮助作用。
WCF服务学习1,2WCF服务学习1,2WCF服务学习1,2WCF服务学习1,2WCF服务学习1,2WCF服务学习1,2
WCF 元数据浏览器 WCF 元数据浏览器
对于初学者 会有帮助 ...数据契约(Data Contract):定义于服务交互的数据类型。 3.错误契约(Fault Contract):定义抛出的错误。 4.消息契约(Message Contract):定义直接与服务交互的消息。
WCF 元数据 查询器 WCF 元数据 分析器 WCF 元数据 查询器 WCF 元数据 分析器
•数据契约版本控制与封送。 •并发管理。 •可伸缩性策略。 •队列服务。 •操作、调用与事件。 •面向服务安全性。 •本书从软件工程的角度出发,深入探索了WCF的每个主题。本书能够使您如虎添翼...
学习WCF数据协定,介绍数据协定的设计与使用
在本次的课程中,我们将向大家介绍设计服务契约,数据契约和消息契约的实用 指导,向大家展示什么时候,以及如何使用它们。同时,在本次课程中您将学习到如何处理复杂类型的序列化,如何使用契约,以及在哪里处理...