|
一、問題重現
為了重現我實際遇到的問題,我特意將問題簡化,為此我寫了一個簡單的例子(你可以從這里下載)。在下面的代碼片斷中,我創建了一個名稱為ContextItem的類型,代表一個需要維護的上下文項。由于需要在WCF服務調用實現自動傳遞,我將起定義成DataContract。ContextItem包含Key,Value和ReadOnly三個屬性,不用說ReadOnly表示該ContextItem可以被修改。注意Value屬性Set方法的定義——如果ReadOnly則拋出異常。
1: [DataContract(Namespace = "http://www.artech.com")]
2: public class ContextItem
3: {
4: private object value = null;
5: [DataMember]
6: public string Key { get; private set; }
7: [DataMember]
8: public object Value
9: {
10: get
11: {
12: return this.value;
13: }
14: set
15: {
16: if (this.ReadOnly)
17: {
18: throw new InvalidOperationException("Cannot change the value of readonly context item.");
19: }
20: this.value = value;
21: }
22: }
23: [DataMember]
24: public bool ReadOnly { get; set; }
25: public ContextItem(string key, object value)
26: {
27: if (string.IsNullOrEmpty(key))
28: {
29: throw new ArgumentNullException("key");
30: }
31: this.Key = key;
32: this.Value = value;
33: }
34: }
NET技術:解決編程中序列化問題,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。