3 回答

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以使用System.Runtime.Serialization.NetDataContractSerializer。它功能更強(qiáng)大,并修復(fù)了經(jīng)典Xml Serializer的某些問(wèn)題。
請(qǐng)注意,此屬性有不同的屬性。
[DataContract]
public class X
{
[DataMember]
public Guid Id { get; private set; }
}
NetDataContractSerializer serializer = new NetDataContractSerializer();
TextWriter tw = new StreamWriter(_location);
serializer.Serialize(tw, obj);
編輯:
根據(jù)Marc的評(píng)論進(jìn)行更新:您可能應(yīng)該System.Runtime.Serialization.DataContractSerializer在案例中使用以獲得清晰的XML。其余代碼相同。

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
只讀字段不會(huì)使用進(jìn)行序列化XmlSerializer,這是由于readonly關(guān)鍵字的性質(zhì)
從MSDN:
該只讀關(guān)鍵字是修改,你可以在字段中使用。當(dāng)字段聲明包含只讀修飾符時(shí),對(duì)由該聲明引入的字段的賦值只能作為聲明的一部分或在同一類的構(gòu)造函數(shù)中進(jìn)行。
所以...您幾乎需要在默認(rèn)構(gòu)造函數(shù)中設(shè)置字段值...
- 3 回答
- 0 關(guān)注
- 386 瀏覽
添加回答
舉報(bào)