反序列化修复值的 XML 列表

Deserialize a XML list of fix values

提问人:Jakube 提问时间:10/20/2023 最后编辑:Jakube 更新时间:10/20/2023 访问量:43

问:

给定以下 XML:

<Values>
  <Value ID="Foo">foo</Value>
  <Value ID="Bar">42</Value>
</Values>

ID 列表始终相同。 如何使用序列化程序属性将其解析到以下类中?

public class Values {
    public string Foo { get; set; }
    public int Bar { get; set; }
}

将其解析为数组非常容易,但这使得验证值或读取它们变得非常麻烦。

[Serializable]
public class Values
{
    [XmlElement("Values")]
    public Value[]? Values { get; init; }
}

[Serializable]
public class Value
{
    [XmlAttribute("ID")]
    public string? Id { get; init; }

    [XmlText]
    public string? Value { get; init; }
}
C# .NET XML 解析

评论

0赞 Jeanot Zubler 10/20/2023
一种可能性是让两个不同的类表示(例如 和 ),并使用自定义映射类在它们之间映射。ValuesValuesSerializableValues
2赞 Natrium 10/20/2023
你说“将其解析为以下类”,这是序列化而不是序列化
0赞 Natrium 10/20/2023
这回答了你的问题吗?stackoverflow.com/questions/364253/......
0赞 Selvin 10/20/2023
@Natrium这怎么可能是重复的?OP 提供有效的方法和他真正想要的东西
0赞 Selvin 10/20/2023
@Jakube似乎您需要通过实现 IXmlSerializable 来构建自定义反序列化 fx

答: 暂无答案