Json
发布时间:2022-04-22 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了化零为整WCF(9) - 序列化(DataContractSerializer, XmlSerializer, DataContractJsonSerializer, SoapFormatter, BinaryFormatter),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
[索引页]
[源码下载]
作者:
webabcd
介绍
WCF(Windows Communication Foundation) - 序列化:本文分别以DataContractserializer,BinaryFormatter为例。
示例
1、服务
DataContractserializerObject.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Runtime.serialization;
namespace
WCF.serviceLib.serialization
{
/**////<sumMary>
///用于演示DataContract序列化的实体类
///</sumMary>
//Namespace-数据契约的命名空间
[DataContract(Namespace="http://webabcd.cnblogs.com/")]
publicclassDataContractserializerObject
{
//Name-数据成员的名称
//Order-数据成员的序列化和反序列化的顺序
[DataMember(Name="UniquEID",Order=0)]
publicGuidID{get;set;}
[DataMember(Order=1)]
publicStringName{get;set;}
[DataMember(Order=2)]
publicintAge{get;set;}
[DataMember(Order=3)]
public@R_618_7538@meTime{get;set;}
}
}
XmlserializerObject.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Runtime.serialization;
using
System.Xml.serialization;
namespace
WCF.serviceLib.serialization
{
/**/@H_403_344@///<sumMary>
///用于演示XML序列化的实体类
///</sumMary> //Namespace-XML根元素的命名空间
[XmlRoot(Namespace="http://webabcd.cnblogs.com/")]
publicclassXmlserializerObject
{
//ElementName-生成的XML元素的名称
//Order-序列化和反序列化的顺序
[XmlElement(ElementName="UniquEID",Order=0)]
publicGuidID{get;set;}
[XmlElement(Order=1)]
publicStringName{get;set;}
[XmlElement(Order=2)]
publicintAge{get;set;}
[XmlElement(Order=3)]
public@R_618_7538@meTime{get;set;}
}
}
SoapformatterObject.cs
BinaryFormatterObject.cs
DataContractJsonserializerObject.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Runtime.serialization;
namespace
WCF.serviceLib.serialization
{
/**////<sumMary>
///用于演示JSON序列化的实体类
///</sumMary>
//Namespace-数据契约的命名空间
[DataContract(Namespace="http://webabcd.cnblogs.com/")]
publicclassDataContractJsonserializerObject
@H_618_1057@{
//Name-数据成员的名称
//Order-数据成员的序列化和反序列化的顺序
[DataMember(Name="UniquEID",Order=0)]
publicGuidID{get;set;}
[DataMember(Order=1)]
publicStringName{get;set;}
[DataMember(Order=2)]
publicintAge{get;set;}
[DataMember(Order=3)]
public@R_618_7538@meTime{get;set;}
}
}
2、演示
Sample.aspx.cs
using
System;
using
System.Collections;
using
System.Configuration;
using
System.Data;
using
System.Linq;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.HtmlControls;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Xml.Linq;
using
System.IO;
using
API
=
WCF.serviceLib.serialization;
public
partial
class
serialization_Sample:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgsE)
{
//演示DataContractserializer的序列化和反序列化
ShowDataContractserializer();
//演示Xmlserializer的序列化和反序列化
ShowXmlserializer();
//演示Soapformatter的序列化和反序列化
ShowSoapformatter();
//演示BinaryFormatter的序列化和反序列化
ShowBinaryFormatter();
//演示DataContractJsonserializer的序列化和反序列化
ShowDataContractJsonserializer();
}
/**////<sumMary>
///演示DataContractserializer的序列化和反序列化
///</sumMary>
voidShowDataContractserializer()
{
vardataContractserializerObject=newAPI.DataContractserializerObject{ID=Guid.NewGuid(),Name="DataContractserializer",Age=28,Time=@R_618_7538@me.Now};
varserializer=newSystem.Runtime.serialization.DataContractserializer(typeof(API.DataContractserializerObject));
//序列化
varms=new@H_559_28@memoryStream();
serializer.WriteObject(ms,dataContractserializerObject);
ms.Position=0;
varsr=newStreamReader(ms);
varstr=sr.ReadToEnd();
txtDataContractserializer.Text=str;
//反序列化
varbuffer=System.Text.Encoding.UTF8.GetBytes(str);
varms2=new@H_559_28@memoryStream(buffer);
vardataContractserializerObject2=serializer.ReadObject(ms2)asAPI.DataContractserializerObject;
lblDataContractserializer.Text=dataContractserializerObjecT2.NAME;
}
/**////<sumMary>
///演示Xmlserializer的序列化和反序列化
///</sumMary> voidShowXmlserializer()
{
varxmlserializerObject=newAPI.XmlserializerObject{ID=Guid.NewGuid(),Name="Xmlserializer",Time=@R_618_7538@me.Now};
varserializer=newSystem.Xml.serialization.Xmlserializer(typeof(API.XmlserializerObject));
//序列化
varms=new@H_559_28@memoryStream();
serializer.serialize(ms,xmlserializerObject);
ms.Position=0;
varsr=newStreamReader(ms);
varstr=sr.ReadToEnd();
txtXmlserializer.Text=str;
//反序列化
varbuffer=System.Text.Encoding.UTF8.GetBytes(str);
varms2=new@H_559_28
@memoryStream(buffer
); varxml
serializerOb
ject2
=serializer.Deserialize(ms2)asAPI.XmlserializerObject;
lblXmlserializer.Text=xmlserializerObjecT2.NAME;
}
/**////<sumMary>
///演示Soapformatter的序列化和反序列化
///</sumMary> voidShowSoapformatter()
{
varsoapformatterOjbect=newAPI.soapformatterOjbect{ID=Guid.NewGuid(),Name="ShowSoapformatter",Time=@R_618_7538@me.Now};
varformatter=newSystem.Runtime.serialization.Formatters.soap.soapformatter();
//序列化
varms=new@H_559_28@memoryStream();
formatter.serialize(ms,soapformatterOjbect);
ms.Position=0;
varstr=System.Text.Encoding.UTF8.GetString(ms.GetBuffer());
txtSoapformatter.Text=str;
//反序列化
varbuffer=System.Text.Encoding.UTF8.GetBytes(str);
varms2=new@H_559_28
@memoryStream(buffer
); varsoa
pformatterOjbect2
=formatter.Deserialize(ms2)asAPI.soapformatterOjbect;
lblSoapformatter.Text=soapformatterOjbecT2.NAME;
}
/**////<sumMary>
///演示BinaryFormatter的序列化和反序列化
///</sumMary> voidShowBinaryFormatter()
{
varbinaryFormatterObject=newAPI.binaryFormatterObject{ID=Guid.NewGuid(),Name="BinaryFormatter",Time=@R_618_7538@me.Now};
varformatter=newSystem.Runtime.serialization.Formatters.binary.binaryFormatter();
//序列化
varms=new@H_559_28@memoryStream();
formatter.serialize(ms,binaryFormatterObject);
ms.Position=0;
varbuffer=@H_559_28
@ms.GetBuffer(
); varstr
=System.Text.Encoding.UTF8.GetString(buffer);
txtBinaryFormatter.Text=str;
//反序列化
varms2=new@H_559_28
@memoryStream(buffer
); varbinaryFormatterOb
ject2
=formatter.Deserialize(ms2)asAPI.binaryFormatterObject;
lblBinaryFormatter.Text=binaryFormatterObjecT2.NAME;
}
/**////<sumMary>
///演示DataContractJsonserializer的序列化和反序列化
///</sumMary> voidShowDataContractJsonserializer()
{
vardataContractJsonserializerObject=newAPI.DataContractJsonserializerObject{ID=Guid.NewGuid(),Name="DataContractJsonserializer",Time=@R_618_7538@me.Now};
varserializer=newSystem.Runtime.serialization.Json.DataContractJsonserializer(typeof(API.DataContractJsonserializerObject));
//序列化
varms=new@H_559_28@memoryStream();
serializer.WriteObject(ms,dataContractJsonserializerObject);
ms.Position=0;
varsr=newStreamReader(ms);
varstr=sr.ReadToEnd();
txtDataContractJsonserializer.Text=str;
//反序列化
varbuffer=System.Text.Encoding.UTF8.GetBytes(str);
varms2=new@H_559_28
@memoryStream(buffer
); vardataContractJson
serializerOb
ject2
=serializer.ReadObject(ms2)asAPI.DataContractJsonserializerObject;
lblDataContractJsonserializer.Text=dataContractJsonserializerObjecT2.NAME;
}
}
运行结果:
大佬总结
以上是大佬教程为你收集整理的化零为整WCF(9) - 序列化(DataContractSerializer, XmlSerializer, DataContractJsonSerializer, SoapFormatter, BinaryFormatter)全部内容,希望文章能够帮你解决化零为整WCF(9) - 序列化(DataContractSerializer, XmlSerializer, DataContractJsonSerializer, SoapFormatter, BinaryFormatter)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。