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

lessonwill 2004-08-11 05:02:36
反的时候怎么分辨哪是哪呢?
...全文
346 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的起始位置。
资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 在计算机视觉领域,实时目标跟踪是许多应用的核心任务,例如监控系统、自动驾驶汽车和无人机导航等。本文将重点介绍一种在2017年备受关注的高效目标跟踪算法——BACF(Boosted Adaptive Clustering Filter)。该算法因其卓越的实时性和高精度而脱颖而出,其核心代码是用MATLAB编写的。 BACF算法全称为Boosted Adaptive Clustering Filter,是基于卡尔曼滤波器改的一种算法。传统卡尔曼滤波在处理复杂背景和目标形变时存在局限性,而BACF通过引入自适应聚类和Boosting策略,显著提升了对目标特征的捕获和跟踪能力。 自适应聚类是BACF算法的关键技术之一。它通过动态更新特征空间中的聚类中心,更准确地捕捉目标的外观变化,从而在光照变化、遮挡和目标形变等复杂情况下保持跟踪的稳定性。此外,BACF还采用了Boosting策略。Boosting是一种集成学习方法,通过组合多个弱分类器形成强分类器。在BACF中,Boosting用于优化目标检测性能,动态调整特征权重,强化对目标识别贡献大的特征,从而提高跟踪精度。BACF算法在设计时充分考虑了计算效率,能够在保持高精度的同时实现快速实时的目标跟踪,这对于需要快速响应的应用场景(如视频监控和自动驾驶)至关重要。 MATLAB作为一种强大的数学计算和数据分析工具,非常适合用于算法的原型开发和测试。BACF算法的MATLAB实现提供了清晰的代码结构,方便研究人员理解其工作原理并行优化和扩展。通常,BACF的MATLAB源码包含以下部分:主函数(实现整个跟踪算法的核心代码)、特征提取模块(从视频帧中提取目标特征的子程序)、聚类算法(实现自适应聚类过程)、Boosting算法(包含特征权重更新的代
内容概要:本书《Deep Reinforcement Learning with Guaranteed Performance》探讨了基于李雅普诺夫方法的深度强化学习及其在非线性系统最优控制中的应用。书中提出了一种近似最优自适应控制方法,结合泰勒展开、神经网络、估计器设计及滑模控制思想,解决了不同场景下的跟踪控制问题。该方法不仅保证了性能指标的渐近收敛,还确保了跟踪误差的渐近收敛至零。此外,书中还涉及了执行器饱和、冗余解析等问题,并提出了新的冗余解析方法,验证了所提方法的有效性和优越性。 适合人群:研究生及以上学历的研究人员,特别是从事自适应/最优控制、机器人学和动态神经网络领域的学术界和工业界研究人员。 使用场景及目标:①研究非线性系统的最优控制问题,特别是在存在输入约束和系统动力学的情况下;②解决带有参数不确定性的线性和非线性系统的跟踪控制问题;③探索基于李雅普诺夫方法的深度强化学习在非线性系统控制中的应用;④设计和验证针对冗余机械臂的新型冗余解析方法。 其他说明:本书分为七章,每章内容相对独立,便于读者理解。书中不仅提供了理论分析,还通过实际应用(如欠驱动船舶、冗余机械臂)验证了所提方法的有效性。此外,作者鼓励读者通过仿真和实验一步验证书中提出的理论和技术。

111,095

社区成员

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

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

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