2009-02-02 50 views
0

我利用XmlSerializer轉換爲/從XML轉換。下面是一個例子類:XmlSerializer和裝飾類(C#)

[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> 

我希望保持主要POCO類的IdRef屬性。此外,因爲有許多類像上面那樣,所以我希望不必爲每個類創建一個子類,並添加擴展屬性。也許使用IXmlSerializer接口創建自定義實現?

UPDATE 我正在用下面介紹的簡單解決方案。我想我試圖「過度考慮」這個實現,並增加了它不需要的複雜性。

回答

1

我覺得呢?我認爲你必須把它們放在你的「POCO」類中,但是你可以將它們隱藏在標有「額外序列化標記屬性」之類的區域中,並使用其他屬性使它們對你的課程的消費者幾乎不可見。

+0

是的,我靠這種方式...... KISS可以這麼說,只是好奇,如果有另一種方式。 – 2009-02-02 22:27:37