我正在进行一些测试以使用它。
我有以下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变量,而当我不是数组时我至少有第一个。
我找到了这个答案Using XmlSerializer with an array in the root element,但他使用了另一种逻辑......我想继续使用[Serializable]
答案 0 :(得分:1)
您找到的答案提供了您需要的信息。 [Serializable]对您没有帮助,因为XmlSerializer没有使用它,请参阅Why doesn't the XmlSerializer need the type to be marked [Serializable]?
答案 1 :(得分:1)
您必须指出数组没有单独的xml元素来包装其项目,但数组项目直接显示在<test>
元素下:
public class test
{
[XmlElement]
public string[] ma { get; set; }
}
PS。有时很难得到正确的映射 - 我通常会在一个包含测试数据的类中填写 serilalize 它,检查XmlSerializer
所做的通常会清除正在发生的事情。