我有一个XML输入字符串,希望将其反序列化为一个对象,并部分保留原始XML。
类定义:
我希望反序列化的语法看起来像这样:
但是XMLSerializer会抛出异常,并且不会将“profileDataXml”字段的子元素输出到原始XML字符串中。有没有办法实现这样的反序列化?
<SetProfile>
<sessionId>A81D83BC-09A0-4E32-B440-0000033D7AAD</sessionId>
<profileDataXml>
<ArrayOfProfileItem>
<ProfileItem>
<Name>Pulse</Name>
<Value>80</Value>
</ProfileItem>
<ProfileItem>
<Name>BloodPresure</Name>
<Value>120</Value>
</ProfileItem>
</ArrayOfProfileItem>
</profileDataXml>
</SetProfile>
类定义:
类定义:
public class SetProfile
{
public Guid sessionId;
public string profileDataXml;
}
我希望反序列化的语法看起来像这样:
string inputXML = "..."; // the above XML
XmlSerializer xs = new XmlSerializer(typeof(SetProfile));
using (TextReader reader = new StringReader(inputXML))
{
SetProfile obj = (SetProfile)xs.Deserialize(reader);
// use obj ....
}
但是XMLSerializer会抛出异常,并且不会将“profileDataXml”字段的子元素输出到原始XML字符串中。有没有办法实现这样的反序列化?
XmlAnyElementAttribute
works for me when wanting to preserve XML elements that my code base doesn't have a schema for.[XmlAnyElement] public XmlElement[] wildcardElements
- GhostRavenstorm