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
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
); varxml
serializerOb
ject2
= 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
); varsoa
pformatterOjbect2
= 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
); varbinaryFormatterOb
ject2
= 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
); vardataContractJson
serializerOb
ject2
= 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,请注明来意。