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

lessonwill 2004-08-11 05:02:36
反的时候怎么分辨哪是哪呢?
...全文
347 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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的起始位置。
内容概要:本书《Deep Reinforcement Learning with Guaranteed Performance》探讨了基于李雅普诺夫方法的深度强化学习及其在非线性系统最优控制中的应用。书中提出了一种近似最优自适应控制方法,结合泰勒展开、神经网络、估计器设计及滑模控制思想,解决了不同场景下的跟踪控制问题。该方法不仅保证了性能指标的渐近收敛,还确保了跟踪误差的渐近收敛至零。此外,书中还涉及了执行器饱和、冗余解析等问题,并提出了新的冗余解析方法,验证了所提方法的有效性和优越性。 适合人群:研究生及以上学历的研究人员,特别是从事自适应/最优控制、机器人学和动态神经网络领域的学术界和工业界研究人员。 使用场景及目标:①研究非线性系统的最优控制问题,特别是在存在输入约束和系统动力学的情况下;②解决带有参数不确定性的线性和非线性系统的跟踪控制问题;③探索基于李雅普诺夫方法的深度强化学习在非线性系统控制中的应用;④设计和验证针对冗余机械臂的新型冗余解析方法。 其他说明:本书分为七章,每章内容相对独立,便于读者理解。书中不仅提供了理论分析,还通过实际应用(如欠驱动船舶、冗余机械臂)验证了所提方法的有效性。此外,作者鼓励读者通过仿真和实验一步验证书中提出的理论和技术。

111,096

社区成员

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

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

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