XML 一个 class 在另一个 class 中的序列化
XML serialization of a class in another class
这些是我目前正在使用的 classes。
public class Monster
{
[XmlAttribute("name")]
public string Name;
public int Mana;
public int Health;
public List<Drop> Drops;
}
public class Drop
{
public string DropInfo;
}
这是XML:
<Monster name="TestMonster1">
<Health>5</Health>
<Mana>2</Mana>
<Drops>
<Drop>124 20 40</Drop>
<Drop>140 15 25</Drop>
<Drop>155 10 15</Drop>
</Drops>
</Monster>
我想要做的是将 XML 中的每个 <Drop>
添加到下拉列表中。我尝试了 XmlArray、XmlArrayItem 和 XmlElement 的不同组合,但其中 none 有效。
现在 Drop class 只有一个字符串,但随着我需要处理该字符串,它还会有更多字符串,这就是为什么 List<Drop>
不仅仅是一个字符串数组。
可以吗?我唯一能做的就是让列表有 3 个正确的项目,但字符串总是空的。
您在 DropInfo 中缺少 [XmlText]。如果没有它,C# 不知道将文本粘贴在 <Drop>
标签中的什么位置:
public class Drop
{
[XmlText]
public string DropInfo;
}
尝试使用
public class Monster
{
[XmlAttribute("name")]
public string Name;
public int Mana;
public int Health;
[XmlArray("Drops")]
[XmlArrayItem("Drop")]
public List<Drop> Drops;
}
public class Drop
{
[XmlText]
public string DropInfo;
}
}
看到它在我的 .NET 中工作 Fiddle:https://dotnetfiddle.net/HzvVkI
这些是我目前正在使用的 classes。
public class Monster
{
[XmlAttribute("name")]
public string Name;
public int Mana;
public int Health;
public List<Drop> Drops;
}
public class Drop
{
public string DropInfo;
}
这是XML:
<Monster name="TestMonster1">
<Health>5</Health>
<Mana>2</Mana>
<Drops>
<Drop>124 20 40</Drop>
<Drop>140 15 25</Drop>
<Drop>155 10 15</Drop>
</Drops>
</Monster>
我想要做的是将 XML 中的每个 <Drop>
添加到下拉列表中。我尝试了 XmlArray、XmlArrayItem 和 XmlElement 的不同组合,但其中 none 有效。
现在 Drop class 只有一个字符串,但随着我需要处理该字符串,它还会有更多字符串,这就是为什么 List<Drop>
不仅仅是一个字符串数组。
可以吗?我唯一能做的就是让列表有 3 个正确的项目,但字符串总是空的。
您在 DropInfo 中缺少 [XmlText]。如果没有它,C# 不知道将文本粘贴在 <Drop>
标签中的什么位置:
public class Drop
{
[XmlText]
public string DropInfo;
}
尝试使用
public class Monster
{
[XmlAttribute("name")]
public string Name;
public int Mana;
public int Health;
[XmlArray("Drops")]
[XmlArrayItem("Drop")]
public List<Drop> Drops;
}
public class Drop
{
[XmlText]
public string DropInfo;
}
}
看到它在我的 .NET 中工作 Fiddle:https://dotnetfiddle.net/HzvVkI