【问题标题】:XmlSerializer and decorated classes (C#)XmlSerializer 和装饰类 (C#)
【发布时间】:2009-02-02 22:17:26
【问题描述】:

我利用 XmlSerializer 与 XML 进行转换。这是一个示例类:

[XmlRootAttribute("myClass")]
public class MyClass {
    private string someField;

    [XmlElement("someField")]
    public string SomeField {
        get {
            return someField;
        }

        set {
            someField = value;
        }
    }
}

XML 如下所示:

<myClass>
    <someField>Some Value</someField>
</myClass>

我希望能够为这个类添加一个属性。例如,有时我需要向元素添加更改跟踪。一个属性,比如“IdRef”,将被添加到 myClass 元素中。

<myClass t:IdRef="someGuid" xmlns:t="uri:some:uri">
    <someField>SomeValue</someField>
</myClass>

我希望将 IdRef 属性保留在 POCO 主类之外。另外,由于有很多像上面这样的类,所以我希望不必为每个类创建一个子类,添加扩展属性。也许使用 IXmlSerializer 接口创建自定义实现?

更新 我将使用下面描述的简单解决方案。我想我试图“过度思考”这个实现,并在不需要的地方增加复杂性。

【问题讨论】:

    标签: c# .net serialization xml-serialization


    【解决方案1】:

    我怎么看?我认为您必须将它们粘贴在您的“POCO”类中,但您可以将它们隐藏在标有“额外序列化标记属性”之类的区域中,并使用其他属性使它们对您的类的消费者几乎不可见。

    【讨论】:

    • 是的,我正朝那个方向倾斜……可以说是 KISS,只是好奇是否还有其他方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 2014-12-07
    • 2014-02-16
    • 2011-06-06
    • 2014-01-14
    • 2014-10-29
    相关资源
    最近更新 更多