XmlSerializer不會序列化只讀字段,只讀屬性(僅與getter
),私有字段等。另外,如果類沒有無參數構造函數,它將不會序列化對象。我的問題,爲什麼我不能用XmlSerializer序列化只讀字段?
1)AFAIK出現這些問題是因爲私有(和只讀)字段無法訪問(和更改),而deserilization。但是如果我不進行反序列化呢?難道我沒有這個選擇嗎?
2)由於相同的原因(反序列化問題),如果類沒有無參數構造函數,它不會序列化對象。但是,當我添加一個私人無參數構造函數,它工作正常。怎麼樣?
3)我不喜歡爲每個類添加一個無參數構造函數,並且爲了能夠序列化它而使所有的字段成爲公共的而非只讀的。現在我在私有無參數構造函數中拋出異常以防止使用。是否有構造函數的屬性告訴編譯器只有授權的調用才能被構造函數使用?如果不是,至少我想用一個拋出異常的屬性標記它,如果它被調用。
1,2)我認爲原因是稍後序列化的點是反序列化。這就像你想把東西放在你的旅行箱裏,儘管你知道機場安全不會讓你回到你身邊。 3)你認爲'授權'電話是什麼意思?來自課堂本身的電話? –
@KamilT通過「授權呼叫」我的意思是,例如,只允許來自特定方法的呼叫(或根本不允許)。對於這個問題'Obsolote'解決了我的問題。 – serdar