wcf中序列化BinaryFormatter,DataContractJsonSerializer,DataContractSerializer,SoapFormatter,XmlSerializer
using System;
using System.Runtime.Serialization;
using System.Xml.Serialization; namespace Larryle.Wcf.ServiceContectData.Serialization
{
[Serializable]
public class BinaryFormatterObject
{
public Guid ID
{
get;
set;
} public string Name
{
set;
get;
} public int Age
{
set;
get;
} public DateTime Time
{
set;
get;
}
}
}
using System;
using System.Runtime.Serialization; namespace Larryle.Wcf.ServiceContectData.Serialization
{
[DataContract(Namespace = "http://www.larryle.com/")]
public class DataContractJsonSerializerObject
{
[DataMember(Name = "UniqueID", Order = )]
public Guid ID
{
set;
get;
} [DataMember(Order=)]
public string Name
{
set;
get;
} [DataMember(Order=)]
public int Age
{
set;
get;
} [DataMember(Order=)]
public DateTime Time
{
set;
get;
}
}
}
using System;
using System.Runtime.Serialization; namespace Larryle.Wcf.ServiceContectData.Serialization
{
[DataContract(Namespace = "http://larryle.com")]
public class DataContractSerializerObject
{
[DataMember(Name = "UniqueID", Order = )]
public Guid ID { set; get; } [DataMember(Order = )]
public string Name { set; get; } [DataMember(Order = )]
public int Age { set; get; } [DataMember(Order = )]
public DateTime Time { set; get; }
}
}
using System;
using System.Xml.Serialization; namespace Larryle.Wcf.ServiceContectData.Serialization
{
[Serializable]
public class SoapFormatterObject
{
public Guid ID { set; get; } public string Name { set; get; } public int Age { set; get; } public DateTime Time { set; get; }
}
}
using System;
using System.Xml.Serialization; namespace Larryle.Wcf.ServiceContectData.Serialization
{
[XmlRoot(Namespace = "http://larryle.com")]
public class XmlSerializerObject
{
[XmlElement(ElementName="UniqueID",Order=)]
public Guid ID { set; get; } [XmlElement(Order=)]
public string Name { set; get; } [XmlElement(Order=)]
public int Age { set; get; } [XmlElement(Order=)]
public DateTime Time { set; get; }
}
}
using System;
using System.IO;
using System.ServiceModel;
using Larryle.Wcf.ServiceContectData.Serialization; namespace Larryle.WcfConsoleHost.Serialization
{
public class Sample
{
public void Launch()
{
ShowBinaryFormatter();
ShowDataContractJsonSerializer();
ShowDataContractSerializer();
ShowSoapFormatterObject();
ShowXmlSerializerObject();
ShowXmlSerializerObject();
} public void ShowBinaryFormatter()
{
BinaryFormatterObject binaryobject = new BinaryFormatterObject
{
ID = Guid.NewGuid(),
Name = "BinaryFormatter",
Age = ,
Time = DateTime.Now
};
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter binaryformatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
MemoryStream ms = new MemoryStream();
binaryformatter.Serialize(ms, binaryobject);
ms.Position = ;
Byte[] by = ms.GetBuffer();
string str = System.Text.Encoding.UTF8.GetString(by);
Console.WriteLine("序列化BinaryFormatter");
Console.WriteLine(str); MemoryStream ms2 = new MemoryStream(by);
BinaryFormatterObject binaryboject2 = binaryformatter.Deserialize(ms2) as BinaryFormatterObject;
Console.WriteLine("反序列化BinaryFormatter");
Console.WriteLine(binaryboject2.Name);
} public void ShowDataContractJsonSerializer()
{
DataContractJsonSerializerObject jsonobjec = new DataContractJsonSerializerObject
{
ID = Guid.NewGuid(),
Name = "DataContractJsonSerializer",
Age = ,
Time = DateTime.Now
};
System.Runtime.Serialization.Json.DataContractJsonSerializer jsonserializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(DataContractJsonSerializerObject));
MemoryStream ms = new MemoryStream();
jsonserializer.WriteObject(ms, jsonobjec);
ms.Position = ;
StreamReader re = new StreamReader(ms);
string str = re.ReadToEnd();
Console.WriteLine("序列化DataContractJsonSerializer");
Console.WriteLine(str); byte[] by = System.Text.Encoding.UTF8.GetBytes(str);
MemoryStream ms2 = new MemoryStream(by);
DataContractJsonSerializerObject obj2 = jsonserializer.ReadObject(ms2) as DataContractJsonSerializerObject;
Console.WriteLine(obj2.Name);
} public void ShowDataContractSerializer()
{
DataContractSerializerObject datacontraceobj = new DataContractSerializerObject
{
ID = Guid.NewGuid(),
Name = "DataContractSerializer",
Age = ,
Time = DateTime.Now
};
System.Runtime.Serialization.DataContractSerializer datacontrace = new System.Runtime.Serialization.DataContractSerializer(typeof(DataContractSerializerObject));
MemoryStream ms = new MemoryStream();
datacontrace.WriteObject(ms, datacontraceobj);
ms.Position = ;
StreamReader sr = new StreamReader(ms);
string str = sr.ReadToEnd();
Console.WriteLine("序列化DataContractSerializer");
Console.WriteLine(str); Byte[] by = System.Text.Encoding.UTF8.GetBytes(str);
MemoryStream ms2 = new MemoryStream(by);
DataContractSerializerObject dataconatraceobj2 = datacontrace.ReadObject(ms2) as DataContractSerializerObject;
Console.WriteLine(dataconatraceobj2.Name);
} public void ShowSoapFormatterObject()
{
SoapFormatterObject soapobj = new SoapFormatterObject
{
ID = Guid.NewGuid(),
Name = "DataContractJsonSerializer",
Age = ,
Time = DateTime.Now
};
System.Runtime.Serialization.Formatters.Soap.SoapFormatter soapserializer = new System.Runtime.Serialization.Formatters.Soap.SoapFormatter();
MemoryStream sm = new MemoryStream();
soapserializer.Serialize(sm, soapobj);
string str = System.Text.Encoding.UTF8.GetString(sm.GetBuffer());
Console.WriteLine("序列化SoapFormatterObject");
Console.WriteLine(str); byte[] by = System.Text.Encoding.UTF8.GetBytes(str);
MemoryStream ms = new MemoryStream(by);
SoapFormatterObject soapobj2 = soapserializer.Deserialize(ms) as SoapFormatterObject;
Console.WriteLine(soapobj2.Name);
} public void ShowXmlSerializerObject()
{
XmlSerializerObject xmlobj = new XmlSerializerObject
{
ID = Guid.NewGuid(),
Name = "DataContractJsonSerializer",
Age = ,
Time = DateTime.Now
};
System.Xml.Serialization.XmlSerializer xmlerialzer = new System.Xml.Serialization.XmlSerializer(typeof(XmlSerializerObject));
MemoryStream ms = new MemoryStream();
xmlerialzer.Serialize(ms, xmlobj);
ms.Position = ;
StreamReader sr = new StreamReader(ms);
string str = sr.ReadToEnd();
Console.WriteLine("序列化XmlSerializerObject");
Console.WriteLine(str); byte[] by = System.Text.Encoding.UTF8.GetBytes(str);
MemoryStream ms2 = new MemoryStream(by);
XmlSerializerObject xmlobj2 = xmlerialzer.Deserialize(ms2) as XmlSerializerObject;
Console.WriteLine(xmlobj2.Name);
}
}
}
wcf中序列化BinaryFormatter,DataContractJsonSerializer,DataContractSerializer,SoapFormatter,XmlSerializer的更多相关文章
- Entity Framework在WCF中序列化的问题
		问题描述 如果你在WCF中用Entity Framework来获取数据并返回实体对象,那么对下面的错误一定不陌生. 接收对 http://localhost:5115/ReService.svc 的 ... 
- WCF中序列化(XML\JSON\Dt)
		序列化 是将对象转换为容易传输的格式的过程.例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象.反之,反序列化根据流重新构造对象. 序列化描述了持久化 ... 
- Entity Framework在WCF中序列化的问题(转)
		问题描述 如果你在WCF中用Entity Framework来获取数据并返回实体对象,那么对下面的错误一定不陌生. 接收对 http://localhost:5115/ReService.svc 的 ... 
- WCF初探-25:WCF中使用XmlSerializer类
		前言 在上一篇WCF序列化和反序列化中,文章介绍了WCF序列化和反序列化的机制,虽然WCF针对序列化提供了默认的DataContractSerializer序列化引擎,但是WCF还支持其他的序列化引擎 ... 
- 在 WCF 中使用高效的 BinaryFormatter 序列化
		本文将定义一个 WCF 终结点行为扩展,以在 WCF 中使用更高效的 BinaryFormatter 进行二进制序列化,并实现对是否使用传统二进制序列化功能的可配置. 介绍 实现步骤 使用方法 效果 ... 
- 十五天精通WCF——第十二天 说说wcf中的那几种序列化
		我们都知道wcf是由信道栈组成的,在我们传输的参数走到传输信道层之前,先需要经过序列化的过程,也就是将参数序列化为message,这篇 我们就来说说这里的序列化,蛮有意思的,可能初学者也明白,在wcf ... 
- .net的XML对象序列化VS WCF中xml序列化问题
		整理一下 .net 对象序列化注意事项: 1. 字段:必须是 public类型 2.属性:只读或者只写的属性不被序列化,只有 可读可写并且赋值的才可以 序列化: Someclass obj = new ... 
- [转]十五天精通WCF——第十二天 说说wcf中的那几种序列化
		我们都知道wcf是由信道栈组成的,在我们传输的参数走到传输信道层之前,先需要经过序列化的过程,也就是将参数序列化为message,这篇 我们就来说说这里的序列化,蛮有意思的,可能初学者也明白,在wcf ... 
- WCF技术剖析之十二:数据契约(Data Contract)和数据契约序列化器(DataContractSerializer)
		原文:WCF技术剖析之十二:数据契约(Data Contract)和数据契约序列化器(DataContractSerializer) [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济 ... 
随机推荐
- decorate all function in all module
			需求: 有package db_api,其下有很多 module 如 plane.py ship.py ufo.py.这些module内定义了方法如 plane.fly(), ship.float() ... 
- http://www.yiibai.com/java8/java8_temporaladjusters.html
			原文:http://www.yiibai.com/java8/java8_temporaladjusters.html TemporalAdjuster 是做日期数学计算.例如,要获得“本月第二个星期 ... 
- .net core mvc启动顺序以及主要部件2
			原文:.net core mvc启动顺序以及主要部件2 前一篇提到WebHost.CreateDefaultBuilder(args)方法创建了WebHostBuilder实例,WebHostBuil ... 
- Shannon-Fano-Elias编码的C语言实现
			Shannon-Fano-Elias编码 一.理论分析 Shannon-Fano-Elias编码是利用累积分布函数来分配码字. 不失一般性,假定取X={1,2,-m}.如果对于全部的x,有p(x)&g ... 
- 关于Lisp和函数式编程 & 各种语言对比 & TIOBE
			上一篇文章提到了,今天又读到Lisp的一些内容 <为什么Lisp如此先进>ruanyifeng(Link).关于Lisp的八卦,可以参考我前面两篇文章 http://www.cnblogs ... 
- Linux上利用NFS实现远程挂载
			两台服务器 192.168.1.1 [WEB服务器] 192.168.1.2 [录音服务器] 说明 在192.168.1.2服务器上每天有许多录音文件生成,192.168.1.1作为WEB服务器,里面 ... 
- 基于MNIST数据的softmax regression
			跟着tensorflow上mnist基本机器学习教程联系 首先了解sklearn接口: sklearn.linear_model.LogisticRegression In the multiclas ... 
- mysql修改删除列,删除有外键依赖的列
			–重命名表rename table t_softwareport to software_port; –建立外键alter table software_port add constraint fk_ ... 
- Ubuntu搭建Android开发环境
			前言 由于迁移到新的笔记本,所以Android开发环境须要又一次配置了.android官网有配置教程,我正好回想一遍 配置Java环境 下载jdk.官网地址:http://www.oracle.com ... 
- HDU 2317  Nasty Hacks
			Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ... 
