【发布时间】:2013-11-22 18:03:09
【问题描述】:
我将使用创建 WCF 服务时给出的 Starter 示例
[DataContract]
public class CompositeType
{
bool boolValue = true;
string stringValue = "Hello ";
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
当我使用 DataContract 时一切正常。
当我使用 Serializable 时,实际变量,无论是私有的还是公共的,对主机都是可见的,而不是属性。如果我使用 NonSerialized 它确实隐藏了变量,但它也没有被传递。我明白了,我想我明白为什么属性没有传递,因为没有什么可以序列化?对吗?
[Serializable]
public class CompositeType
{
[NonSerialized]
bool boolValue = true;
[NonSerialized]
string stringValue = "Hello ";
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
如果我不提供任何属性,类会按预期返回,这我不明白?
我的任务是获取现有业务对象并通过 WCF 处理它们?看起来我最好的选择是不理会它们,而不是添加 DataContract 属性。这是为什么呢?
【问题讨论】:
标签: c# wcf serialization