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岁身患急性白血病的女孩[内有苏州电视台经济 ...
随机推荐
- Nginx常用命令(启动/重启/停止/测试配置文件/重新加载配置文件)
Nginx 安装后只有一个程序文件,本身并不提供各种管理程序,它是使用参数和系统信号机制对 Nginx 进程本身进行控制的. Nginx 的参数包括有如下几个: 使用: /usr/local/ngin ...
- 识别SQL Server 性能杀手
性能优化的重点在于识别定位问题,预先了解主要的性能杀手,能够更快的定位到问题并将工作集中在可能的原因之上. SQL SERVER性能杀手主要集中在如下几类: 1.1 低质量的索引 低质量的索引通常 ...
- UNIDAC如何驱动MSSQL2000
UNIDAC如何驱动MSSQL2000 如下图,PROVIDER必须设置为PRSQL.默认的PRAUTO,如果操作系统是XP可以,如果是WIN7以上的,不可以. 原因是MSSQL NATIVE 11已 ...
- 机器学习优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)
SGD: 此处的SGD指mini-batch gradient descent,关于batch gradient descent, stochastic gradient descent, 以及 mi ...
- aSmack连接server异常smack.SmackException$ ConnectionException thrown by XMPPConnection.connect();
以下是我在研究asmack4.0出现的异常 06-17 12:02:56.924: W/System.err(10622): org.jivesoftware.smack.SmackException ...
- 吃我一记咸鱼突刺——使用板载RTC定时开机
前言 原创文章,转载引用务必注明链接.水平有限,欢迎指正. 2016年3月30日 Lemuntu(Base On Jessie) 3.10.37 原载于Lemaker论坛.汇总于此. 看ATC2603 ...
- jobject和jclass
jclass和jobject的迷惑第一次使用JNI,实例引用(jobject)和类引用(jclass)让人觉得很困惑.实例引用与一个数组和java.lang.Object类或它的子类的实例对应.类引用 ...
- [原创] 在线音乐API的研究 (Part 2.1)
最近,在优化一个自己写的音乐播放器.主要目的是回顾.归纳,并希望能够写出一个属于自己的common lib.今天,主要是关于在线音乐API的一些分析结果.此次,主要分析的是歌词.专辑部分.在线搜索音乐 ...
- hive cli 启动缓慢问题
hive-0.13.1启动缓慢的原因 发现时间主要消耗在以下3个地方: 1. hadoopjar的时候要把相关的jar包上传到hdfs中(这里大概消耗5s,hive0.11一样,这个地方不太好优化) ...
- 面向接口的webservice发布方式
import javax.jws.WebService; /**面向接口的webservice发布方式 */ @WebService public interface JobService { pub ...