gpt4 book ai didi

c# - xml列表反序列化只取一个元素

转载 作者:太空宇宙 更新时间:2023-11-03 13:35:06 26 4
gpt4 key购买 nike

我正在从这个 xml 文件加载不同类型的路径:

<?xml version="1.0" encoding="utf-8" ?>
<SplashScreen>
<Image>
<Path>Visual/Screens/SplashScreen/samurai1024-768</Path>
<Path>Visual/Screens/SplashScreen/Humanoid1024-768</Path>
</Image>
<Song>
<Path>Audio/SplashScreen/wardrums</Path>
</Song>
</SplashScreen>

这是我用来序列化和反序列化的 XmlManager 类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.IO;

namespace Lucid.Classes
{
public class XmlManager<T>
{
public Type Type;

public T Load(string P_path)
{
T instance;
using (TextReader reader = new StreamReader(P_path))
{
XmlSerializer xmlSerializer = new XmlSerializer(Type);
instance = (T)xmlSerializer.Deserialize(reader);
}
return instance;
}

public void Save(string P_path, object P_obj)
{
using (TextWriter writer = new StreamWriter(P_path))
{
XmlSerializer xmlSerializer = new XmlSerializer(Type);
xmlSerializer.Serialize(writer, P_obj);
}
}
}
}

这是我要反序列化的类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;

namespace Lucid.Classes
{
[XmlRoot("SplashScreen")]
public class SerializableSplashScreen
{
[XmlElement("Image")]
public List<string> imgPathList { get; set; }
[XmlElement("Song")]
public List<string> songPathList { get; set; }
}
}

不知何故,它只接受图像中的第一条路径而没有记录其余部分。我做错了什么吗?

最佳答案

好的,我找到了解决方案。问题出在 xml 文件中。正确的写法是:

<?xml version="1.0" encoding="utf-8" ?>
<SplashScreen>
<Image>Visual/Screens/SplashScreen/samurai1024-768</Image>
<Image>Visual/Screens/SplashScreen/Humanoid1024-768</Image>
<Song>Audio/SplashScreen/wardrums</Song>
</SplashScreen>

关于c# - xml列表反序列化只取一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18972228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com