【发布时间】:2021-05-03 22:33:31
【问题描述】:
注意:XML序列化提前,意味着将生成XML文件。
问题是如何在 1 个 XML 文件中序列化/反序列化多个对象?
FOR CONTEXT 我在构建时尝试多对象序列化(减少到可读性):
public class platformData
{
public platformData()
{
public int this.platformId = platformIter;
};
}
static void Build(){
//writer needs to be set-able
if (File.Exists(Course01.xml))
{
File.Delete(Course01.xml);
}
StreamWriter writeToCourseFile = new StreamWriter("Course01.xml"); //<---file being made
//think of -1 as null, and 0 to x as index numbers.
for(int chapterIter = -1; chapterIter > chapterLimiter; ++chapterIter)
{
for(int missionIter = -1; missionIter > missionLimiter; ++missionIter)
{
//reroll mission template arrays using same settings
private Random rnd = new Random();
private int orderRnd = rnd.Next(0,4);
private int activeOrderRef = (distanceSetting * 5) + orderRnd;
public int[] activeOrderTemplate = orderTemplate[activeOrderRef];
for(int platformIter = -1; platformIter > platformLimiter; ++platformIter)
{
private Random rnd = new Random();
public int rndPos = rnd.Next(0,2);
platformData Platform = new platformData();
XmlSerializer platformSave = new XmlSerializer(object);//<--attempting to assign each object to serializer.
platformSave.Serialize(writeToCourseFile, Platform);
}
}
}
writeToCourseFile.Close(); //<--done editing file
};
在此,序列化结束:它看起来一团糟,因为我无法在迭代之外引用每个实例(因为它们具有相同的平台引用),我什至不相信“XmlSerializer platformSave = new XmlSerializer(object );"会拉出我刚刚制作的特定对象,我也不相信在对象构造期间打开 SreamWriter 是可取的。
另一方面,消毒结束:我还没有设法在我的其他班级一次全部消毒这些物品。
重申确切和具体的问题,我如何一次序列化/去毒化多个对象?
欢迎与此代码有关的所有建议,即使它不能完全回答我的问题。特别是,我确实认为“最好告诉我我需要知道什么,而不是我问什么”
【问题讨论】:
-
这里有一个建议:发布相关的 XML
-
此代码将生成 XML 文件(通过序列化),但此代码未处于功能状态。代码将是 build 方法生成的所有对象。
-
好吧,老实说,你应该编辑你的问题,因为它不是很清楚。
-
我在代码中添加了一些 cmets,老实说我不知道我还能做什么......问题是关于 xml 序列化,这意味着我正在从我的代码中生成一些 xml.. .
-
看,我粘贴了你的代码,添加了相关的用法,但最终出现了 41 个错误......除非你发布一个最小的、可验证的和完整的示例 (stackoverflow.com/help/minimal-reproducible-example),否则没有人会费心寻找在它。
标签: c# serialization deserialization xml-serialization