wcf契约随记
1.wcf契约分为:服务契约,操作契约,消息契约、数据契约
-------------------服务契约:
[ServiceContract( Name = "name_IUser", Namespace = "http://localhost:3232/wpf/aa")]
配置元数据交换
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange">
</endpoint>//系统内置的数据元数据交换掉的协议;
-------------------操作契约:
[OperationContract(Name = "name_GetName", Action = "http://localhost:3232/wpf/aa/ServiceContract/GetName")]
参数重命名:
void SetName([MessageParameter(Name="")]string name);
返回值重命名
[return:MessageParameter(Name="")]
标记单工通信
[OperationContract(IsOneWay = true)]//默认为false;
-------------------数据契约:
-添加引用:using System.Runtime.Serialization;
[DataContract(Name = "name_DataUser", Namespace = "http://localhost:3232/wpf/aa")]
数据成员:
--数据契约序列化器案例:
Person p = new Person();
p.Name = "郭泽峰";
DataContractSerializer ds = new DataContractSerializer(typeof(Person));
FileStream fs = new FileStream("cc.xml", FileMode.Create);
ds.WriteObject(fs, p);
fs.Close();
[DataMember(Name="name_Name",IsRequired=false,Order=0)]//IsRequired:约束是否必须,order:序列化时的顺序;
为标记的不进行序列化;
1.wcf为了实现soa思想丢失了面向对象的许多特性,比如多态,为了继续使用多态,添加了knowtype(已知类型),在服务中暴露基本类型。标记为派生类并参与序列化;标记后就可以进行里氏替换了;否则转换会剖出异常;
2.在接口上标记已知类型:[serviceKnowType(typeOf())],这样接口里的所有方法声明都可以进行里氏替换;
3.只针对接口中某些特定方法定义的话,加到特定方法声明上就可以了;
-------------------消息契约:为了可以自定义soap格式;header和body;
[MessageContract(IsWrapped=true,ProtectionLevel=ProtectionLevel.Sign)]//消息契约
[messageHeader(ProtectionLevel=ProtectionLevel.EncryptAndSign)]
[messageBodyMember]
wcf契约随记的更多相关文章
- 【WCF--初入江湖】06 WCF契约服务行为和异常处理
06 WCF契约服务行为和异常处理 一.WCF契约服务行为 [1] 服务行为可以修改和控制WCF服务的运行特性. 在实现了WCF服务契约后,可以修改服务的很多执行特性. 这些行为(或者特性)是通过配置 ...
- WCF契约定义及主要用途
我们在使用WCF时,对其制定各种各样的规则,就叫做WCF契约.任何一个分布式的应用程序在传递消息的时候都需要实现制定一个规则. WCF配置文件相关操作技巧解析 全方位解读WCF Address配置文件 ...
- wcf契约版本处理与异常处理(随记)
-----------版本控制策略:必须支持向后兼容:----就是当服务端发生改变,但客户端未更新会不会发生错误: 一旦契约发布,若要契约发生变化,如何不影响客户端使用: ----wsdl:契约: 服 ...
- WCF - 契约
契约就是双方或多方就某个问题达成的一种的共识 服务提供者通过契约的形式将服务公布出来 服务消费者根据契约来消费 这样通过契约这个中间者就可以规范服务提供的内容 而服务消费者也可以根据契约来使用服务端 ...
- WCF契约之---服务契约 、数据契约、 消息契约
本篇博文只是简单说下WCF中的契约的种类.作用以及一些简单的代码示例.在WCF中契约分为服务契约.数据契约和消息契约.下面对这几种契约进行简单的介绍. 服务契约 服务契约描述了暴露给外部的类型(接口或 ...
- wcf事务(随记)
----------------------------------------------------wcf事务:1.ACID:原子性.一致性.隔离性.持久性:2.事务:添加命名空间(using S ...
- WCF学习 (三)深入认识WCF契约
什么是契约? 从SOA概念上讲,契约属于服务公开接口的一部分.一个服务契约,定义了服务端公开的服务方法,使用传输协议,可访问地址,传输的消息格式等内容.换句话说:契约描述了该服务的功能和作用,它告诉S ...
- [WCF编程]4.契约概述
一.契约的基本概念 契约是消息参与者之间的约定.在SOA架构中,契约提供了服务通信所必需的元数据.契约用来定义数据类型,操作,消息交换模式和消息交换使用的传输协议.契约通常是在标准化平台中使用与编程语 ...
- WCF分布式开发步步为赢(6):WCF服务契约继承与分解设计
上一节我们学习了WCF分布式开发步步为赢(5)服务契约与操作重载部分.今天我们来继续学习WCF服务契约继承和服务分解设计相关的知识点.WCF服务契约继承有何优势和缺点?实际项目里契约设计有什么原则和依 ...
随机推荐
- 安装程序添加iis的方法经验分享
原文:安装程序添加iis的方法经验分享 网上有一些这样的方法,但我这里主要做一些对比和扩充 网上这方面的文章的岁数比较大,server 08R2和win7出来后,整理这方面的资料的文章没找到,所以这里 ...
- DTD验证XML(转)
1.内部DTD 最简单的使用DTD的方法是在XML文件的序言部分加入一个DTD描述,加入的位置是紧接在XML处理指示之后.一个包含DTD的XML文件的结构为: <?xml ve ...
- 如何获得android手机通讯录的字母显示(两)
随后的写如何使各第一字母显示相同的分类触点: 于adapter implement SectionIndexer 这项adapter必须在下面可以实现3接口: @Override public Obj ...
- JavaScript中五种常见运算符
一. in运算符 in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望它的右操作数是一个对象.如果右侧的对象拥有一个名为左操作数值的属性名,那么表达式返回true.例如: var point ...
- Lenovo E46A-Win 7_无线灯亮但无法启动(耽误3天以上您信吗.....)问题: wlan autoconfig 依赖服务或组无法启动
Lenovo E46A-Win 7_无线灯亮但无法启动(耽误3天以上您信吗.....)问题: wlan autoconfig 依赖服务或组无法启动 提示: windows7 无线连接服务wlan au ...
- MVC客户管理(添加、修改、查询、分页)
ASP.NET MVC搭建项目后台UI框架—6.客户管理(添加.修改.查询.分页) 目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2 ...
- 使用PHP顶替JS有趣DOM
較简单,我须要把一个导航页的数据整理好写入数据库.一个比較直观的方法是对html文件进行分析.通用的方法是用php的正則表達式来匹配.可是这样做开发和维护都非常困难,代码可读性非常差. 导航页的数据都 ...
- Unity3D环境GLSL shaders书面 — 固体参数
我猜你一定能写一个转型不只是随机颜色显示红色shader.你需要从Unity编辑器shader传递参数. 本文中,我们将使用shader的Properties和GLSL特殊的变量类型uniforms. ...
- 基于Linux平台病毒BlackHole病毒的决心
今天会见了病毒,少量的代码,但在使用小漏洞的函数的,真正的杀伤力相当惊人. 转载请注明出处:http://blog.csdn.net/u010484477谢谢^_^ watermark/2/text/ ...
- 前端学习笔记(zepto或jquery)——对li标签的相关操作(四)
对li标签的相关操作——五种方式给奇数项li标签设置样式 demo演示: 1 2 3 4 5 6 7 // 详解: 通常我们为多个li添加样式时常用的是使用filter,但我们在第三节中可以看到fil ...