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


介绍
WCF(Windows Communication Foundation) - 序列化:本文分别以DataContractserializer,Xmlserializer,DataContractJsonserializer,Soapformatter,BinaryFormatter为例


示例
1、服务
DataContractserializerObject.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Runtime.serialization;

namespace WCF.serviceLib.serialization
@H_944_55@{
/// <sumMary>
/// 用于演示DataContract序列化的实体类
/// </sumMary>

// Namespace-数据契约的命名空间
[DataContract(Namespace = " http://webabcd.cnblogs.com/ " )]
public class DataContractserializerObject
{
// Name-数据成员的名称
// Order-数据成员的序列化和反序列化的顺序
[DataMember(Name = " UniquEID " ,Order = 0 )]
public GuidID { get ; set ;}

[DataMember(Order
= 1 )]
public String Name @H_40_197@
{ get ; set ;}

[DataMember(Order
= 2 )]
public int Age { get ; set ;}

[DataMember(Order
= 3 )]
public datetiR_235_11845@eTime { 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
{
/// <sumMary>
/// 用于演示XML序列化的实体类
/// </sumMary>

// Namespace-XML根元素的命名空间
[XmlRoot(Namespace = " http://webabcd.cnblogs.com/ " )]
public class XmlserializerObject
{
// ElementName-生成的XML元素的名称
// Order-序列化和反序列化的顺序
[XmlElement(ElementName = " UniquEID " ,Order = 0 )]
public GuidID { get ; set ;}

[XmlElement(Order
= 1 )]
public String Name { get ; set ;}

[XmlElement(Order
= 2 )]
public int Age { get ; set ;}

[XmlElement(Order
= 3 )]
public datetiR_235_11845@eTime { 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_673_611@{
/// <sumMary>
/// 用于演示Soap序列化的实体类
/// </sumMary>

[serializable]
public class SoapformatterOjbect
{
public GuidID { get ; set ;}
public String Name { get ; set ;}
public int Age { get ; set ;}
public datetiR_235_11845@eTime { 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
@H_343_801@ {
/// <sumMary>
/// 用于演示Binary序列化的实体类
/// </sumMary>

[serializable]
public class BinaryFormatterObject
{
public GuidID { get ; set ;}
public String Name { get ; set ;}
public int Age { get ; set ;}
public datetiR_235_11845@eTime { 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/ " )]
public class DataContractJsonserializerObject
{
// Name-数据成员的名称
// Order-数据成员的序列化和反序列化的顺序
[DataMember(Name = " UniquEID " ,Order = 0 )]
public GuidID { get ; set ;}

[DataMember(Order
= 1 )]
public String Name { get ; set ;}

[DataMember(Order
= 2 )]
public int Age { get ; set ;}

[DataMember(Order
= 3 )]
public datetiR_235_11845@eTime { 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
{
protected void Page_Load( object sender,EventArgsE)
{
// 演示DataContractserializer的序列化和反序列化
ShowDataContractserializer();

// 演示Xmlserializer的序列化和反序列化
ShowXmlserializer();

// 演示Soapformatter的序列化和反序列化
ShowSoapformatter();

// 演示BinaryFormatter的序列化和反序列化
ShowBinaryFormatter();

// 演示DataContractJsonserializer的序列化和反序列化
ShowDataContractJsonserializer();
}


/// <sumMary>
/// 演示DataContractserializer的序列化和反序列化
/// </sumMary>

void ShowDataContractserializer()
{
vardataContractserializerObject
= new API.DataContractserializerObject {ID = Guid.NewGuid(),Name = " DataContractserializer " ,Age = 28 ,Time = datetiR_235_11845@e.Now} ;

varserializer
= new System.Runtime.serialization.DataContractserializer( typeof (API.DataContractserializerObject));

// 序列化
varms = new @H_315_23@memoryStream();

serializer.WriteObject(ms,dataContractserializerObject);

ms.Position
= 0 ;
varsr
= new StreamReader(ms);
varstr
= sr.ReadToEnd();
txtDataContractserializer.Text
= str;


// 反序列化
varbuffer = System.Text.Encoding.UTF8.GetBytes(str);
varms2
= new @H_315_23@memoryStream(buffer);
vardataContractserializerObject2
= serializer.ReadObject(ms2) as API.DataContractserializerObject;
lblDataContractserializer.Text
= dataContractserializerObjecT2.NAME;
}


/// <sumMary>
/// 演示Xmlserializer的序列化和反序列化
/// </sumMary>

void ShowXmlserializer()
{
varxmlserializerObject
= new API.XmlserializerObject {ID = Guid.NewGuid(),Name = " Xmlserializer " ,Time = datetiR_235_11845@e.Now} ;

varserializer
= new System.Xml.serialization.Xmlserializer( typeof (API.XmlserializerObject));

// 序列化
varms = new @H_315_23@memoryStream();

serializer.serialize(ms,xmlserializerObject);

ms.Position
= 0 ;
varsr
= new StreamReader(ms);
varstr
= sr.ReadToEnd();
txtXmlserializer.Text
= str;


// 反序列化
varbuffer = System.Text.Encoding.UTF8.GetBytes(str);
varms2
= new @H_315_23@memoryStream(buffer);
varxmlserializerObject2 = serializer.Deserialize(ms2) as API.XmlserializerObject;
lblXmlserializer.Text
= xmlserializerObjecT2.NAME;
}


/// <sumMary>
/// 演示Soapformatter的序列化和反序列化
/// </sumMary>

void ShowSoapformatter()
{
varsoapformatterOjbect
= new API.soapformatterOjbect {ID = Guid.NewGuid(),Name = " ShowSoapformatter " ,Time = datetiR_235_11845@e.Now} ;

varformatter
= new System.Runtime.serialization.Formatters.soap.soapformatter();

// 序列化
varms = new @H_315_23@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_315_23@memoryStream(buffer);
varsoapformatterOjbect2 = formatter.Deserialize(ms2) as API.soapformatterOjbect;
lblSoapformatter.Text
= soapformatterOjbecT2.NAME;
}


/// <sumMary>
/// 演示BinaryFormatter的序列化和反序列化
/// </sumMary>

void ShowBinaryFormatter()
{
varbinaryFormatterObject
= new API.binaryFormatterObject {ID = Guid.NewGuid(),Name = " BinaryFormatter " ,Time = datetiR_235_11845@e.Now} ;

varformatter
= new System.Runtime.serialization.Formatters.binary.binaryFormatter();

// 序列化
varms = new @H_315_23@memoryStream();

formatter.serialize(ms,binaryFormatterObject);

ms.Position
= 0 ;
varbuffer
= @H_315_23@ms.GetBuffer();
varstr = System.Text.Encoding.UTF8.GetString(buffer);
txtBinaryFormatter.Text
= str;


// 反序列化
varms2 = new @H_315_23@memoryStream(buffer);
varbinaryFormatterObject2 = formatter.Deserialize(ms2) as API.binaryFormatterObject;
lblBinaryFormatter.Text
= binaryFormatterObjecT2.NAME;
}


/// <sumMary>
/// 演示DataContractJsonserializer的序列化和反序列化
/// </sumMary>

void ShowDataContractJsonserializer()
{
vardataContractJsonserializerObject
= new API.DataContractJsonserializerObject {ID = Guid.NewGuid(),Name = " DataContractJsonserializer " ,Time = datetiR_235_11845@e.Now} ;

varserializer
= new System.Runtime.serialization.Json.DataContractJsonserializer( typeof (API.DataContractJsonserializerObject));

// 序列化
varms = new @H_315_23@memoryStream();

serializer.WriteObject(ms,dataContractJsonserializerObject);

ms.Position
= 0 ;
varsr
= new StreamReader(ms);
varstr
= sr.ReadToEnd();
txtDataContractJsonserializer.Text
= str;


// 反序列化
varbuffer = System.Text.Encoding.UTF8.GetBytes(str);
varms2
= new @H_315_23@memoryStream(buffer);
vardataContractJsonserializerObject2 = serializer.ReadObject(ms2) as API.DataContractJsonserializerObject;
lblDataContractJsonserializer.Text
= dataContractJsonserializerObjecT2.NAME;
}

}



运行结果:

DataContractserializer

Xmlserializer

ShowSoapformatter

BinaryFormatter

DataContractJsonserializer

大佬总结

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

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

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