2009-06-30 24 views

回答

4

XmlSerializer只關心公共讀/寫成員。一種選擇是實現IXmlSerializable,但這是一個lot的工作。一個更實際的選項(如果可用,適用)可能是使用DataContractSerializer

[DataContract] 
public class Something 
{ 
    [DataMember] 
    public string Text {get; private set;} 

    private Something() 
    { 
     Text = string.Empty; 
    } 

    public Something(string text) 
    { 
     Text = text; 
    } 
} 

這適用於公共和私有成員,但生成的XML是不太一樣的,你不能指定XML屬性。

0

編號XML序列化將只序列化公共讀/寫字段和對象的屬性。

-1

 
Try

[Serializable] public class Something { ... }

+0

XmlSerializer不需要[Serializable],它不會做任何事情來讓您序列化只讀成員。 – 2009-06-30 20:32:21

+0

有時需要[Serializable]。 – 2009-06-30 20:46:36

相關問題