|
一、问题重现
为了重现我实际遇到的问题,我特意将问题简化,为此我写了一个简单的例子(你可以从这里下载)。在下面的代码片断中,我创建了一个名称为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技术:解决编程中序列化问题,转载需保留来源!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。