Json   发布时间:2022-04-22  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了化零为整WCF(9) - 序列化(DataContractSerializer, XmlSerializer, DataContractJsonSerializer, SoapFormatter, BinaryFormatter)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
[索引页]
[源码下载]


化零为整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
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_481_618@/**/
///<sumMary>
///用于演示Soap序列化的实体类
///</sumMary>

[serializable]
publicclassSoapformatterOjbect
{
publicGuidID{get;set;}
publicStringName{get;set;}
publicintAge{get;set;}
public@R_618_7538@meTime{get;set;}
}

}


BinaryFormatterObject.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
{
///<sumMary>
///用于演示Binary序列化的实体类
///</sumMary>

[serializable]
publicclassBinaryFormatterObject
{
publicGuidID{get;set;}
publicStringName{get;set;}
publicintAge{get;set;}
public@R_618_7538@meTime{get;set;}
}

}


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);
varxmlserializerObject2=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);
varsoapformatterOjbect2=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);
varbinaryFormatterObject2=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);
vardataContractJsonserializerObject2=serializer.ReadObject(ms2)asAPI.DataContractJsonserializerObject;
lblDataContractJsonserializer.Text
=dataContractJsonserializerObjecT2.NAME;
}

}



运行结果:

DataContractserializer

Xmlserializer

ShowSoapformatter

BinaryFormatter

DataContractJsonserializer



OK
[源码下载]

大佬总结

以上是大佬教程为你收集整理的化零为整WCF(9) - 序列化(DataContractSerializer, XmlSerializer, DataContractJsonSerializer, SoapFormatter, BinaryFormatter)全部内容,希望文章能够帮你解决化零为整WCF(9) - 序列化(DataContractSerializer, XmlSerializer, DataContractJsonSerializer, SoapFormatter, BinaryFormatter)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。