【发布时间】:2014-04-02 12:15:57
【问题描述】:
我希望在反序列化/序列化之前整理我用来保存 xml 数据的类。
我想要达到的是这个
<CalculationInputs>
<Key Name="Keyname" Value="keyname" />
<Input Name="InputName" Value="InputValue" />
<Input Name="InputName2" Value="InputValue2" />
</CalculationInputs>
我当前的实现涉及到一个“CalculationInputs”类,其中包含一个“输入”列表和一个单一的键类型,即
[XmlRoot("CalculationInputs")]
public class CalculationInputs
{
...
[XmlElement("Key")]
public Key Key { get; set; }
// InputList
[XmlElement("Input")]
public List<Input> InputList { get; set; }
...
}
但是我想通过像这样的列表 CalculationInputs 类来简化这一点
[XmlRoot("CalculationInputs")]
public class CalculationInputs: List<Input>
{
[XmlElement("Key")]
public Key Key { get; set; }
...
}
遗憾的是,它只有 50% 有效。扩展列表很好地去串了..但是'Key'元素被忽略了,我明白了
<CalculationInputs>
<Input Name="InputName" Value="InputValue" />
<Input Name="InputName2" Value="InputValue2" />
</CalculationInputs>
有人指点吗?
另外,为了加分 - 反序列化时我可以有许多 Key 标签,它使用第一个并忽略其余部分,即
<Key Name="Keyname" Value="keyname" />
<Key Name="Keyname2" Value="keyname2" />
而对我来说,如果在反序列化时抛出异常会更好,因为 Key 不是 List。
谢谢。
【问题讨论】:
标签: c# .net xml serialization deserialization