问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#如何反序列化多个对象

发布网友 发布时间:2024-10-05 10:05

我来回答

2个回答

热心网友 时间:2024-11-14 05:13

你可以通过将两个值类型封装成对象的属性,并标记该对象为可序列化的,然后对该对象的集合进行序列化,然后取的时候反序列化该对象集合,这样不是更方便吗.

热心网友 时间:2024-11-14 05:13

没什么好说的,写个例子给你看吧,有些代码用了VS2008的特性,如果你用的是VS2008以下的版本,自己改下吧。

using System;
using System.Text;
using System.IO;
using System.Xml.Serialization;

namespace Demo
{

public class Account
{
public int UserID
public string Username
}

class Program
{
static void Main( string[] args )
{
Account[] accounts = {
new Account(),
new Account(),
new Account()
};

string savePath = @"c:\XmlSerializerTest.txt";
XmlSerializer xs = new XmlSerializer( typeof( Account[] ) );
using ( TextWriter tw = new StreamWriter( savePath ) )
{
xs.Serialize( tw, accounts );
tw.Close();
using ( TextReader tr = new StreamReader( savePath ) )
{
Account[] deSerializedValue = xs.Deserialize( tr ) as Account[];
if ( deSerializedValue != null && deSerializedValue.Length > 0 )
{
for ( int i = 0; i < deSerializedValue.Length; i++ )
{
Console.WriteLine( "\tUserID = , Username = ", i, deSerializedValue[ i ].UserID, deSerializedValue[ i ].Username );
}
}
}
}

Console.ReadKey();
}
}

}

//----------二进制方式,可以使用BinaryFormatter 类来以二进制格式将对象或整个连接对象图形序列化和反序列化
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

namespace Demo
{
[Serializable]
public class Account
{
public int UserID
public string Username
}

class Program
{
static void Main( string[] args )
{
Account[] accounts = {
new Account(),
new Account(),
new Account()
};

string savePath = @"c:\BinarySerializerTest.bin";
BinaryFormatter formatter = new BinaryFormatter();

using ( FileStream writeStream = new FileStream( savePath, FileMode.Create, FileAccess.Write ) )
{
formatter.Serialize( writeStream, accounts );
//xs.Serialize( tw, accounts );
writeStream.Close();
using ( FileStream readStream = new FileStream( savePath, FileMode.Open, FileAccess.Read ) )
{
Account[] deSerializedValue = formatter.Deserialize( readStream ) as Account[];
if ( deSerializedValue != null && deSerializedValue.Length > 0 )
{
for ( int i = 0; i < deSerializedValue.Length; i++ )
{
Console.WriteLine( "\tUserID = , Username = ", i, deSerializedValue[ i ].UserID, deSerializedValue[ i ].Username );
}
}
}
}

Console.ReadKey();
}
}

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...分?普通话不好没事吧?我现在东营工作,这边有没有短期的培训... “腾马培训”的公务员面试辅导有实战模拟吗? 北京腾马顺通物流有限公司是骗人的吗?在木樨园那一带 vivonex屏幕是多大的 vivoNEX配置是怎么样的 衣服被染色了怎么能恢复? 描写关于旅行的唯美句子 关于旅行的文艺句子 旅行简短文艺句子出去玩的心情发朋友圈 麻辣捞面怎么做? 南京市有哪些私立高中 ...用不成,点击图标就弹出 正在准备安装,然后就是对话框打开时无法执... c#编写简单的银行系统 ...和EXcel打不开,并弹出提示框:Windows Installe正在准备安装... C# 在原有的 class account 上进行添加一个 减少账户里面的钱。 我添加... Excel2003经常运行过程中自动关闭,用格式刷刷取格式后只要选择一个单元... ...通过word2003,ppt2003没考及格,现在复习excel2003,发现太难_百度知 ... 老河口梨花节简介 襄阳 使用面积80平左右的房子 初装走水电(加材料费) 大概需要多少钱... 华中梨子品种有哪些 华中哪种梨最好吃 佐丹士工程漆怎么样 咖啡手摇磨豆机选购指南,不同价位咖啡磨豆机推荐,司令官C40真的这么... 刚换了块技嘉的P31-DS3L的板子,装好后一直重复开关机,不进入WINDOWS什么... 技嘉EP31-DS3L主板装w7怎么操作 襄阳轴承的企业荣誉 襄阳轴承质量标准认证 十堰妞妞食品有限公司怎么样? 湖北妞妞食品有限公司发展历程 如果我的加拿大老婆在加拿大生下了BB,我的BB是否是加拿大户籍,我是中 ... 襄阳汽车轴承股份有限公司战略计划 哪些国家生孩子可入籍 ...Word.Excel2003时,都是弹出(这个操作只对当前安装的产品有 C# (1)设计一个账户类,包括账号,姓名,余额及密码等变量; ...小很小的虫子,是什么啊?床垫、被子、床单上都有,怎么去除呢?谢谢... 我用C#编写了一个WIN应用程序,文件夹代表的是应用程序的另一个子系 ... 榴莲欧包怎么做才好吃? 若把英语单词"GOOD"写错了..则可能出现的错误有几种? 榴莲芝士软欧包如何烘焙口感更好? 若把英语单词“ ”的字母顺序写错了,则可能出现的错误共有 种 罢黜百家什么意思?有什么典故? 湖北襄大集团张德武案二审落槌,认罪认罚改判8年半,如何 2017全国卷哪些省份 2017哪些省全国卷 2017全国卷哪些省 同学很拽怎么办? 襄大农牧(襄阳)有限公司怎么样? 襄大农牧荆门有限公司怎么样? 澄海3c 2v2 光明黑暗各首发什么,然后出什么二奶,三奶,四奶……_百度知... 澄海3C 2V2中Y二奶为什么选BMG而放弃AM和MK 关于3c澄海,我想问一下,如果3v3 我出kog ga二奶出了pal 而且y出了am 澄海3C5.49中小y二奶出什么最好