将XML混合内容中的文本反序列化为自定义对象
本文关键字:反序列化 文本 自定义 对象 XML 混合 | 更新日期: 2023-09-27 18:08:18
是否可能有一个XML,其中一个元素具有混合内容,并将混合元素中的文本反序列化为自定义对象而不是string
?
我试过了:
[XmlText(typeof(textType))]
[XmlElement("query", typeof(templateBodyQuery))]
[XmlElement("expand", typeof(expandType))]
[XmlElement("insert", typeof(expandTypeInsert))]
public object[] Items { get; set; }
期望文本项将被序列化为textType
,但我得到'textType' cannot be used as 'xml text'
错误。
这是我的textType
类:
public class textType
{
[XmlText]
public string Value { get; set; }
}
不能为XmlText使用非基本类型。此外,我不确定我理解xml将如何结构化,因为您不能在单个节点下拥有XmlText和XmlElements。
我认为这就是你想要做的:
[XmlElement("textType",typeof(textType))]
[XmlElement("query", typeof(templateBodyQuery))]
[XmlElement("expand", typeof(expandType))]
[XmlElement("insert", typeof(expandTypeInsert))]
public object[] Items { get; set; }
反序列化:
<Test>
<textType>example</textType>
<query>...</query>
<expand>...</expand>
</Test>
到一个类Test
,在Items
数组的开始有一个textType对象,Value
为"example"