XmlSerializer 以及类和 xml 属性中的不同字段

发布于 2024-12-07 07:10:23 字数 644 浏览 0 评论 0原文

我有包含多个项目的 xml,例如:

<TestObject>
  <TestElement1/>
  <TestElement2/>
</TestObject>
<TestObject>
  <TestElement1/>
  <TestElement2/>
</TestObject>

我还有类:

class TestClass {
  public int TestElement1 { get; set; }
  public int Element { get; set; }
}

如果我这样做:

XmlSerializer s = new XmlSerializer(typeof(List<TestClass>));
List<TestClass> list = (List<TestClass>)s.Deserialize("myXml.xml");

在它之后我得到包含对象 TestClass 的列表,但属性 Element 未设置。如果我想在 Element 字段中设置 TestElement2,我必须如何更改序列化?

I have xml with several items, for example:

<TestObject>
  <TestElement1/>
  <TestElement2/>
</TestObject>
<TestObject>
  <TestElement1/>
  <TestElement2/>
</TestObject>

Also I have class:

class TestClass {
  public int TestElement1 { get; set; }
  public int Element { get; set; }
}

If I do:

XmlSerializer s = new XmlSerializer(typeof(List<TestClass>));
List<TestClass> list = (List<TestClass>)s.Deserialize("myXml.xml");

After it I get list with objects TestClass, but property Element didn't set. How I must change serialization, if I want to set TestElement2 in Element field?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自在安然 2024-12-14 07:10:23

您需要使用 [XmlElement] 属性来修饰 Element 属性:

[XmlRoot("TestObject")]
class TestClass {
    public int TestElement1 { get; set; }

    [XmlElement("TestElement2")]
    public int Element { get; set; }
}

You need to decorate the Element property with an [XmlElement] attribute:

[XmlRoot("TestObject")]
class TestClass {
    public int TestElement1 { get; set; }

    [XmlElement("TestElement2")]
    public int Element { get; set; }
}
痴情换悲伤 2024-12-14 07:10:23

尝试使用 XmlElement 属性,

public class TaxRates{
    [XmlElement(ElementName = "TaxRate")]
    public decimal ReturnTaxRate;
}

请参阅使用属性控制 XML 序列化

Try XmlElement attribute

public class TaxRates{
    [XmlElement(ElementName = "TaxRate")]
    public decimal ReturnTaxRate;
}

see Controlling XML Serialization Using Attributes

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文