【问题标题】:How to make a class deserialize as a different name如何使类反序列化为不同的名称
【发布时间】:2012-01-15 23:34:19
【问题描述】:

例如:

<apple />

将很好地序列化到一个名为“apple”的类。但是,如果我想将该类称为“Dragon”,它将不会序列化(这是有道理的)。我想知道如何标记“Dragon”,以便当 XmlSerializer 看到它时,它知道“Dragon”与

【问题讨论】:

    标签: c# .net xml xmlserializer


    【解决方案1】:

    假设Dragon 至少定义了apple 所做的属性和字段的超集,那么主管技术的回答是合适的,尽管我认为您的问题实际上是在问:

    [System.Xml.Serialization.XmlType("apple")]
    public class Dragon
    

    如果Dragonapple 不兼容,那么最好在类型之间执行显式转换。假设您的应用程序知道appleDragon 的定义,这可以通过将apple 流反序列化为apple 对象,将属性映射到新的Dragon 对象,然后序列化您的@ 来完成。 987654331@对象。

    【讨论】:

      【解决方案2】:

      您希望将System.Xml.Serialization.XmlTypeAttribute 添加到类中。

      [System.Xml.Serialization.XmlType("Dragon")]
      public class apple
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-29
        • 2013-10-09
        • 2020-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多