将多个对象序列化进同一个文件,怎么反序列化出来?

lessonwill 2004-08-11 05:02:36
反的时候怎么分辨哪是哪呢?
...全文
304 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
csq0516 2004-08-12
  • 打赏
  • 举报
回复
up
lessonwill 2004-08-12
  • 打赏
  • 举报
回复
楼上说的有道理!
herony420 2004-08-12
  • 打赏
  • 举报
回复
如果是把多个对象的序列化,我觉得比较直接的办法是对你的对象的类里定义一个能够标识你当前对象的标志,比如使用ID,这样,反序列化时就可以根据这个来判断
亲密数 2004-08-12
  • 打赏
  • 举报
回复
序列化时什么顺序,反序列化时什么顺序就可以了。
mars131 2004-08-12
  • 打赏
  • 举报
回复
不知道这个有没有帮助,是一个序列化对象为XML的程序:
using System;
using System.IO;
using System.Xml.Serialization;


public class Book
{
public int BookId;
public string BookName;
public string Author;
public string ISBN;
public double values;
public string first;
public string last;
public string color;
public int pages;
public string shop;

public Book()
{

}
}

public class Object1
{
//public Book[] xmlBook;
public Book[] xmlBook;
//public Order[] order;


public string opID;
public string opdd;
public Object1()
{
}
public Object1(Book[] book,string opid)
{
xmlBook = book;
opID = opid;
}

}

public class App
{
public static void Main()
{
Serialize();
Console.WriteLine("按任意键反序列化...");
Console.ReadLine();
Deserialize();
//SoapSerialize();
}

// 序列化
public static void Serialize()
{
Book[] mars = new Book[1000];

for(int i=0;i<3;i++)
{
Book mars1 = new Book();
mars1.BookId = i;
mars1.BookName = "wowowo";
mars1.Author ="matt";
mars1.ISBN = "123456";
mars1.values = 12.67;
mars1.first = "jonny";
mars1.last = "jonny.R";
mars1.color = "RED";
mars1.pages = 561;
mars1.shop = "ats";

mars[i] = mars1;
}



Object1 obj1 = new Object1(mars,"13");


XmlSerializer serializer = new XmlSerializer(typeof(Object1));
StreamWriter writer = new StreamWriter("d:\\book.xml");

serializer.Serialize(writer,obj1);

writer.Close();

Console.Write("序列化类Book成功!");
}

// 反序列化
public static void Deserialize()
{
XmlSerializer serializer = new XmlSerializer(typeof(Object1));
StreamReader reader = new StreamReader("d:\\book.xml");

Object1 unobj = new Object1();
unobj = (Object1)serializer.Deserialize(reader);
reader.Close();

Console.WriteLine("opID" + unobj.opID.ToString());
}
}
lessonwill 2004-08-12
  • 打赏
  • 举报
回复
不懂,能否说的详细点?
怎么建index,序列化时怎么按index来放,反的时候又怎么按index来读?
能否给出例子?
csq0516 2004-08-11
  • 打赏
  • 举报
回复
up
qqchen79 2004-08-11
  • 打赏
  • 举报
回复
在文件头上建一个index,指向每个Serialized Object的起始位置。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧