我将使用在创建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; }
}
}
当我使用Serializable时,实际的变量,不管是私有的还是公共的,对主机都是可见的,而不是属性。如果我使用非串行化,它确实隐藏了变量,但它也不会被传递。我明白了,我想我明白了为什么没有传递属性,因为没有要序列化的内容?对吗?
[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属性。为什么?