这篇文章主要讲述假设我们在一个Web项目中有这样两个类
复制代码 代码如下:
public class Member
{
public string Num { get; set; }
public string Name { get; set; }
}
public class Team
{
public string Name;
public List




这样一个聪明的看官应该已经想到,怎么进行
命名空间:System. 程序集:System.现在这里展示了一个提供序列化与反序列化方法的EncodeHelper类。
Deserialize方法将Serialize方法则将对象转换为复制代码 代码如下:
///
public sealed class EncodeHelper
{
///
public static object Deserialize(string {
object result;
try
{
using (StringReader stringReader = new StringReader( {
result = }
}
catch (Exception innerException)
{
bool flag = false;
if ( {
if ( {
flag = true;
}
}
throw new ApplicationException(string.Format("Couldn't parse }
return result;
}
///
public static string Serialize(object ObjectToSerialize)
{
string result = null ;
try
{

using (MemoryStream memoryStream = new MemoryStream())
{
UTF8Encoding uTF8Encoding = new UTF8Encoding(false, true);
result= uTF8Encoding.GetString(memoryStream.ToArray());
}
}
catch (Exception innerException)
{
throw new ApplicationException("Couldn't Serialize Object:" + ObjectToSerialize.GetType().Name, innerException);
}
return result;
}
}

要使用这个类需要添加以下引用
using System;
using System.Text;
using System.IO;
using System.using System.
下面我们用一个控制台程序来演示一下这个类是如何工作的。这里是程序的Main函数。
复制代码 代码如下:
static void Main(string[] args)
{
List




与我在文章开头给出的例子是一模一样的。
最终反序列化出来的newTeam对象打印出来是这样的结果。
Team Name:Development
Member Num:001
Member Name:Marry
Member Num:002
Member Name:John
回到我们开头的Web通信的例子,
利用接收方再将接收到的
最后我们来看一下怎么利用一些特性来控制序列化与反序列化操作的过程。我们把开始的类改一下:
复制代码 代码如下:
public class Member
{
[ public string Num { get; set; }
public string Name { get; set; }
}
[ public class Team
{
[ public List




本来的根节点Team变成了Our_Team,Member的子节点Num变成了Member_Num,并且Team的Name子节点被忽略了。
可见特性这些特性的具体内容可以在MSDN查看,就不多讲了。
有了这些知识,在网络中传递对象数据应该已经难不倒各位看官了把。^_^

09-06 04:38