gpt4 book ai didi

c# - 从 XML 填充类对象

转载 作者:数据小太阳 更新时间:2023-10-29 02:30:09 26 4
gpt4 key购买 nike

我在将下面给出的 XML 填充到类时遇到了一些问题,我知道如何从 XML(反序列化)填充类对象,但下面的 XML 对我来说很棘手。

<Header>
<To EmailType="Personal">abc@abc.com</To>
<From EmailType="Work">abc2@abc.com</From>
</Header>

如果我创建下面的类,它只会填充 XML 的数据部分而不是属性,

[XmlRoot(ElementName = "Header")]
public class Header
{
public Header()
{

}

[XmlElement(ElementName = "To", Form = XmlSchemaForm.Unqualified)]
public string To { get; set; }


[XmlElement(ElementName = "From", Form = XmlSchemaForm.Unqualified)]
public string From { get; set; }
}

我希望能够解析并保存属性和数据。

最佳答案

我假设你想要的是将它反序列化为:

public string ToAddress {get;set;}
public EmailType ToEmailType {get;set;} // an enum
public string FromAddress {get;set;}
public EmailType FromEmailType {get;set;}

不幸的是,XmlSerializer 无法做到这一点。你必须有一个层次模型:

public EmailDetails To {get;set;}
public EmailDetails From {get;set;}

...

public class EmailDetails {
[XmlAttribute]
public EmailType EmailType {get;set;}
[XmlText]
public string Address {get;set;}
}

或者,您必须通过 XElement 或类似工具手动解析它。

关于c# - 从 XML 填充类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24670271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com