欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    《数据契约》PPT课件.ppt

    • 资源ID:55146137       资源大小:2.91MB        全文页数:34页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《数据契约》PPT课件.ppt

    南京工业职业技术学院数据契约和序列化数据契约和序列化蒋美云南京工业职业技术学院可序列化类型数据契约已知类型(Known types)IXmlSerializable本课程内容:本课程内容:南京工业职业技术学院在分布式系统中,一个Application与另一个Application之间进行交互,必然需要携带数据。在服务内部,功能由代码实现,而在服务外部,功能由WSDL定义,WCF服务内部程序的数据由简单与复杂类型,而在服务外部,数据由XSD(XML Schema Definitions)表示。数据契约的作用:类型与XSD之间进行映射。映射成XSD后随WSDL一起发布。序列化可以理解成这种关系的映射。Serialization可以看成是把包含相同内容的数据从一种结构(.NET Object)转换成另一种结构(XML)。要实现在两种不同结构之间的转化,这两种结构之间必须存在一种Mapping(映射)。Serialization的实现由序列化器(Serializer)来负责。为什么要序列化为什么要序列化南京工业职业技术学院WCF序列化将对象图转化为XML信息集的过程。将CLR类型转化成符合标准的XML序列化序列化南京工业职业技术学院满足下列条件之一将被DataContractSerializer序列化:标记有 DataContract和DataMember属性具有CollectionDataContract属性由IXMLSerializable派生;标记有Serializable属性,而成员未标记NonSerialized标记有Serializable,并实现了Iserializable接口;CLR内建基本类型,如int,stringBytes array、DateTime、等数组或容器枚举什么样的数据会被序列化?什么样的数据会被序列化?南京工业职业技术学院Serialization 是通过Serializer来完成的,在WCF中,有3种不同的SerializerDataContractSerializer(定义在System.RunTime.Serializtion namespace中)XMLSerializer(定义在System.XML.Serialization namespace)NetDataContractSerializer(定义在System.XML.Serialization namespace)。他们用不同的方式实现.NET Object的Serialization。DataContractSerializer和NetDataContractSerializer基本上没有太大的区别,其中DataContractSerializer为WCF默认的Serializer,如果没有显式定义采用另外一种Serializer,WCF会创建一个DataContractSerializer 序列化NET Object。WCFWCF中序列化方式中序列化方式南京工业职业技术学院WCFWCF中序列化方式中序列化方式南京工业职业技术学院所有域都被序列化 无论可访问性(accessibility)如何无法对命名规范或者数据类型进行控制不想系列化某个成员,可以在该成员上添加Nonserializable特性SerializableAttributeSerializableAttribute(传统的)(传统的)南京工业职业技术学院为了获得最大可能的互操作性,建议使用DataContractAttribute 和DataMemberAttribute 属性对类型进行标记,以创建数据协定。数据协定是服务协定的一部分,用于描述服务操作交换的数据。对于复杂类型,使用DataContractSerializer是一种较好的方法数据契约(数据契约(Data ContractsData Contracts)概述)概述:序序列化中常用的一种方式列化中常用的一种方式南京工业职业技术学院数据契约(数据契约(Data ContractsData Contracts)概述)概述南京工业职业技术学院数据契约(数据契约(Data ContractsData Contracts)概述)概述南京工业职业技术学院创建数据契约创建数据契约南京工业职业技术学院 DataContract public class People DataMember public string name;DataMember public int age;public People(string name,int age)this.name=name;this.age=age;ServiceContract public interface IService1 OperationContract string GetInfomation(People people);数据契约数据契约枚举DataContractenum ContactType EnumMember Customer;EnumMember Vendor;1.枚举也可以不序列化直接使用,如果需要添加服务应用或用需要序列化2.需要只发布部分枚举成员的时候才需要使用DataContractAttribute和EnumMemberAttribute属性,否则就采用缺省的契约(不应用任何属性)来包含全部枚举成员3.可以通过应用NonSerializedAttributed来排除不希望被序列化的枚举成员南京工业职业技术学院提供命名空间(Namespace)能够提供显式的NameDataContractAttribute DataContractAttribute 参考书本参考书本p5253p5253南京工业职业技术学院可以指定排列顺序 缺省按照字母表顺序排列能够显式提供Name,IsRequired(表示是不是为空,如IsRequired=true,表示Name在序列化之前必须要被赋值,不为空)DataMemberAttributeDataMemberAttribute南京工业职业技术学院Data Contract SchemaData Contract Schema按照字母顺序排序(缺省)按照字母顺序排序(缺省)南京工业职业技术学院数据契约是可选的样式协定:除非显式应用数据协定属性,否则不会序列化任何类型或数据成员数据协定与托管代码的访问范围无关:可以对私有数据成员进行序列化,并将其发送到其他位置,以便可以公开访问它们数据契约数据契约南京工业职业技术学院数据协定名称数据协定名称南京工业职业技术学院数据协定等效性书本数据协定等效性书本p60p60南京工业职业技术学院数据协定等效性数据协定等效性南京工业职业技术学院V1版 DataContract public class People DataMember public string name;DataMember public int age;DataMember public int grade;数据协定等效性数据协定等效性-对数据契约的非破坏对数据契约的非破坏性更改性更改V2版 DataContract public class People DataMember public string name;DataMember public int age;DataMember public string id;在使用添加服务引用和添加代理时,具有扩展功能。也即,代理类根据V1生成,而后服务升级到V2版本,可以用v1版契约调用v2版服务南京工业职业技术学院数据协定等效性数据协定等效性南京工业职业技术学院数据协定等效性数据协定等效性南京工业职业技术学院书本p54类之间的继承关系定义类的层次结构定义类的层次结构南京工业职业技术学院用Known types属性在WSDL中发布其他数据类型(需要强制包含某些类型)已知类型(Known types)允许在服务契约中使用多态的行为KnownType用法:KnownType(typeof(类型)应用场景数据契约上:1)一个序列化的派生类被发送到端点,而希望得到序列化的基类,WCF无法知道,因为基类可能不是契约的一部分;(基类的实例可以引用该基类多个派生类的实例,没加KnownType不会被反序列化)DataContract KnownType(typeof(派生类)基类)2)hashtable类,存储的元素是其他类(p56)在服务操作中暴露基本类型 将已知类型(known types)相关到 基本类型(基类类型)自身 特定操作 整个服务契约 采用属性声明或者配置的方式来实现已知类型(已知类型(Known TypesKnown Types)南京工业职业技术学院KnownTypeAttributeKnownTypeAttribute南京工业职业技术学院ServiceKnownTypeAttribute特性,可以使用在服务契约上,也可以应用在服务契约的操作方法上。P58,注意57页下文字而KnowType仅能用在数据契约的基类上。ServiceKnownTypeAttributeServiceKnownTypeAttribute南京工业职业技术学院ServiceKnownTypeAttributeServiceKnownTypeAttribute南京工业职业技术学院南京工业职业技术学院ServiceKnownTypeServiceKnownType南京工业职业技术学院配置文件中使用配置文件中使用KnownTypeKnownType南京工业职业技术学院在完美的WCF世界中:创建同业务对象描述相同功能的数据契约 暴露在服务契约中在现实世界中:可能无法拥有对象(不可序列化)业务对象的实例化可能不正确 可能需要对现存的schema进行支持Code-FirstCode-First与与Contract-FirstContract-First南京工业职业技术学院这是asmx采用的SerializerIXmlSerializableIXmlSerializable南京工业职业技术学院消息契约(消息契约(Message ContractsMessage Contracts)

    注意事项

    本文(《数据契约》PPT课件.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开