C# DataContract DataMember

Windows Communication Foundation (WCF) uses a serialization engine called the Data Contract Serializer by default to serialize and deserialize data (convert it to and from XML).

data contract is a formal agreement between a service and a client that abstractly describes the data to be exchanged.

Serializable标记大家都很熟悉,它是XmlSerializer的标记,在WCF中其实很少用这个标记,因为我们WCF用的是DataContractSerializer,对应的标记也是DataContract

Primitive类型默认是直接可被序列化的,自定义的类型要用DataContract序列化处理,WCF用DataContactSerializer。在WCF中一旦一个类被标记为DataContract,那么只有标记为DataMember的字段/属性才会被序列化。

All .NET Framework primitive types, such as integers and strings, as well as certain types treated as primitives, such as DateTime and XmlElement, can be serialized with no other preparation and are considered as having default data contracts.

DataContract也可以有继承,但是child和parent都要有[DataContract]attribute:

总结一下吧,WCF中应用各个标记时所作的序列化处理:

1.          不给任何标记将会做XML映射,所有公有属性/字段都会被序列化
2.          [Serializable]标记会将所有可读写字段序列化
3.        [DataContract]和[DataMember]联合使用来标记被序列化的字段

数据契约(DataContract)
服务契约定义了远程访问对象和可供调用的方法,数据契约则是服务端和客户端之间要传送的自定义数据类型。

一旦声明一个类型为DataContract,那么该类型就可以被序列化在服务端和客户端之间传送,如下所示。

[DataContract]

public class UserInfo

{

//….

}
---------------------

原文地址:https://www.cnblogs.com/shiyh/p/10536778.html

时间: 2024-08-05 06:47:15

C# DataContract DataMember的相关文章

年前辞职-WCF入门(6)

前言 昨天早上去医院做入职体检,被告知要预约,本以为是要排队,我连视频都准备好了...结果就回来了.下午去了新公司那边找房子,2了,因为公司提供了班车列表,我既然就只在班车所经过的几个地方找,却遗漏了公司附近这个重要的地址.最后找了一个“江景房”,上阳台就能看到钱塘江.价格和现在的比翻了一倍,累了,不想找了. 有朋友让我把标题前缀“年前辞职”4个字拿了,好吧,我承认,我就是靠这个吸引一部分眼球的. 第六集 WCF DataContract & DataMember (WCF的Data和DataM

【转】c# 解析JSON的几种办法

http://www.cnblogs.com/ambar/archive/2010/07/13/parse-json-via-csharp.html 刚开始只是想找一个转换JSON数组的方法,结果在MSDN翻到一大把. 搜索过程中免不了碰到一大堆名词:WCF => DataContract => DataMember => DataContractJsonSerializer,然后就是不停的引入命名空间. 这一段经历,立即让我就联想到了上面引用的这句存在于某小说里面巫师的话语.静态语言真

在Application中集成Microsoft Translator服务之获取访问令牌

我在这里画了一张图来展示业务逻辑 在我们调用microsoft translator server之前需要获得令牌,而且这个令牌的有效期为10分钟.下表列出所需的参数和对于的说明 参数 描述 client_id 必须的,指你在Azuzre注册应用程序的客户端ID client_secret 必须的,指你在Azuzre注册应用程序的客户端密钥 scope   必须的,默认使用http://api.microsofttranslator.com      grant_type 必须的,默认使用"cl

第一章-设计原理及设计模式

SOA简介 soa(Service-Oriented Architecture)面向服务架构,既是一种编程模式,也是软件开发的一种架构方法.根据这种架构方法,应用程序是由具有一定行为,称为服务的功能单元组成. 服务是一组具有相同要求和功能目标的方法.根据它们的结果,如数据,运算结果等,其他部分可以调用相应的服务来执行其逻辑.这些函数都有一个明确定义且公开的签名,因此其他代码可以把这些服务中的函数当作黑盒子那样调用.服务的具体操作是不可见的---它们与用户之间没有直接的交互,而是根据输入参数的要求

C#中JSON序列化和反序列化

json序列化和反序列化帮助类: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serialization; using System.Runtime.Serialization.Json; using System.IO; using System.Text.RegularExpressions; using System.We

c# 解析JSON的几种办法

欲成为海洋大师,必知晓海中每一滴水的真名. 刚开始只是想找一个转换JSON数组的方法,结果在MSDN翻到一大把. 搜索过程中免不了碰到一大堆名词:WCF => DataContract => DataMember => DataContractJsonSerializer,然后就是不停的引入命名空间. 这一段经历,立即让我就联想到了上面引用的这句存在于某小说里面巫师的话语.静态语言真有点令人抓狂,不停的做准备,然后才可能开始工作. 对比 .NET下几种常见的解析JSON方法 主要类 命名

WCF的例子

Demo的 "Service端"以本机IIS为宿主,"Client端"以WebForm项目为例. 1.新建项目:WCF>WCF Service Application: 2.删除默认文件IService.cs与Service.svc.并分别创建增.删.改.查"Add.svc"."Save.svc"."Remove.svc"."Get.svc,Search.svc",分别对应4个功能

基于.Net FrameWork的 RestFul Service

关于本文 这篇文章的目的就是向大家阐述如何在.net framework 4.0中创建RestFul Service并且使用它. 什么是web Services,什么是WCF 首先讲到的是web Service, 它是一种能够让客户端程序在web页面上通过HTTP协议请求需要数据的部件.我们可以用Asp.net创建普通的Web Services并且让这些Services能够被客户端程序所调用. 其次说到的是Web Services,它是一个编程平台,它能够通过遵循Simple Object Ac

Memcached+WebApi记录

一.安装Memcached Memcached1.2.6 http://files.cnblogs.com/files/jasonduan/11465401756756.zip Memcached.ClientLibrary http://files.cnblogs.com/files/jasonduan/10524626586159.zip 网上好多文章 http://jingyan.baidu.com/article/335530da5f765019cb41c3ec.html http://