如何将数组与XmlSerializer一起使用
本文关键字:一起 XmlSerializer 数组 | 更新日期: 2023-09-27 17:58:35
我正在做一些测试来使用它。
我有以下xml:
<?xml version="1.0"?>
<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ma>233</ma>
<ma>2333</ma>
</test>
我有这个类来反序列化它:
[Serializable]
public class test
{
public string ma { get; set; }
}
它确实包含第一个元素。现在我想要两者,所以我尝试设置一个阵列
[Serializable]
public class test
{
public string[] ma { get; set; }
}
然而,设置一个我现在为0的数组会导致ma变量,而当它不是数组时,我至少有第一个。
我使用根元素中带有数组的XmlSerializer找到了这个答案,但他使用了另一个逻辑。。。我想继续使用[Serializable]
您必须指出数组没有单独的xml元素来包装其项,但数组项直接显示在<test>
元素下:
public class test
{
[XmlElement]
public string[] ma { get; set; }
}
PS。有时很难正确映射-我通常用测试数据填充一个类,并将其序列化,检查XmlSerializer
是如何处理的,通常会清除正在发生的事情。
您找到的答案提供了您需要的信息。[Serializable]对您没有帮助,因为XmlSerializer没有使用它,请参阅为什么没有';XmlSerializer是否需要将类型标记为[Serializable]?