XmlSerializer和装饰类(C#)

时间:2009-02-02 22:17:26

标签: c# .net serialization xml-serialization

我利用XmlSerializer转换为XML或从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接口创建自定义实现?

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

1 个答案:

答案 0 :(得分:1)

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