gpt4 book ai didi

c# - 为序列化/反序列化准备 XML 数据的正确方法是什么

转载 作者:太空宇宙 更新时间:2023-11-03 18:48:39 24 4
gpt4 key购买 nike

    <?xml version="1.0" encoding="utf-8" ?>
<Hero>
<Legion>
<Andromeda>
<SpellOne>
<Name>Comet</Name>
<Icon>Images/Spell/Andromeda/Spell1.gif</Icon>
<Action>Target Unit</Action>
<Description>Andromeda rips a comet from her dimension to hurl at an enemy, damaging and stunning them.</Description>
<Ranks>
<First>
<ManaCost>95</ManaCost>
<Cooldown>10 Seconds</Cooldown>
<Effects>Deals 100 Magic damage and stuns target for 1.75 seconds.</Effects>
<ExtraEffects></ExtraEffects>
</First>
<Second>
<ManaCost>110</ManaCost>
<Cooldown>10</Cooldown>
<Effects>Deals 175 Magic damage and stuns target for 1.75 seconds.</Effects>
<ExtraEffects></ExtraEffects>
</Second>
<Third>
<ManaCost>125</ManaCost>
<Cooldown>10</Cooldown>
<Effects>Deals 250 Magic damage and stuns target for 1.75 seconds.</Effects>
<ExtraEffects></ExtraEffects>
</Third>
<Fourth>
<ManaCost>140</ManaCost>
<Cooldown>10</Cooldown>
<Effects>Deals 325 Magic damage and stuns target for 1.75 seconds.</Effects>
<ExtraEffects></ExtraEffects>
</Fourth>
</Ranks>
</SpellOne>

<SpellTwo>
<Name>Aurora</Name>
<Icon>Images/Spell/Andromeda/Spell2.gif</Icon>
<Action>Target Position</Action>
<Description>Andromeda shakes the magnetic field of Newerth, causing an Aurora to erupt, damage, and reduce the armor of all enemies in front of her.</Description>
<Ranks>
<First>
<ManaCost>40</ManaCost>
<Cooldown>15 Seconds</Cooldown>
<Effects>Deals 25 damage to targets in a line and applies Aurora for 15 seconds.</Effects>
<ExtraEffects>-5% Base Damage, -2 Armor</ExtraEffects>
</First>
<Second>
<ManaCost>40</ManaCost>
<Cooldown>15 Seconds</Cooldown>
<Effects>Deals 50 damage to targets in a line and applies Aurora for 15 seconds.</Effects>
<ExtraEffects>-10% Base Damage, -3 Armor</ExtraEffects>
</Second>
<Third>
<ManaCost>40</ManaCost>
<Cooldown>15 Seconds</Cooldown>
<Effects>Deals 75 damage to targets in a line and applies Aurora for 15 seconds.</Effects>
<ExtraEffects>-15% Base Damage, -4 Armor</ExtraEffects>
</Third>
<Fourth>
<ManaCost>40</ManaCost>
<Cooldown>15 Seconds</Cooldown>
<Effects>Deals 100 damage to targets in a line and applies Aurora for 15 seconds.</Effects>
<ExtraEffects>-20% Base Damage, -5 Armor</ExtraEffects>
</Fourth>
</Ranks>
</SpellTwo>

所以我的问题是,我的 XML 格式是否正确?执行此操作的正确 方法是什么。只要我学会了为序列化/反序列化准备 XML 数据的正确方法,我不介意再次从头重写 1300 行 XML。

非常感谢。

最佳答案

在您的 XML 中,我突然想到了两件事。如果我们谈论 C# 序列化,您的对象必须具有类似于 SpellOne、SpellTwo 的属性,以及等级“第一”、“第二”、“第三”和“第四”。

现在,如果这是一成不变的,并且不可能增加/减少等级和/或法术的数量,那可能并不可怕。但是,如果您为某种形式的角色或 5 级添加 SpellThree,则必须更新您的对象。

我可能会建议一些类似的东西

<Spells>
<Spell id="1" />
<Spell id="2" />
</Spells>

那么拼写结构可能是相同的,您可以拥有一个带有 List 的 C# 对象,然后将对其进行序列化/反序列化。

除此之外,您的格式看起来还不错。

您可能会尝试的一件事是创建一个简单的小型控制台应用程序,创建您的拼写对象,然后将其序列化为 XML。查看它输出的结构,这会让您很好地了解如何格式化它。

关于c# - 为序列化/反序列化准备 XML 数据的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1993720/

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