|
一、問題重現(xiàn)
為了重現(xiàn)我實際遇到的問題,我特意將問題簡化,為此我寫了一個簡單的例子(你可以從這里下載)。在下面的代碼片斷中,我創(chuàng)建了一個名稱為ContextItem的類型,代表一個需要維護的上下文項。由于需要在WCF服務(wù)調(diào)用實現(xiàn)自動傳遞,我將起定義成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技術(shù):解決編程中序列化問題,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。