我有一些作为服务方法的结果传递的类,这个类有一个get-only属性:
[DataContract]
public class ErrorBase
{
[DataMember]
public virtual string Message { get { return ""; } }
}
我在服务端得到了一个异常:
“MyNamespace.ErrorBase”“中的属性”“System.Runtime.Serialization.InvalidDataContractException:”“没有设置方法”“
”“。”
我必须让这个属性作为唯一的getter,我不能允许用户给它赋值。有什么我可以使用的变通方法吗?或者我是否遗漏了一些额外的属性?
发布于 2010-02-24 10:34:35
为Message提供一个公共的getter和受保护的setter,这样只有子类(和DataContractSerializer,因为它欺骗:)可以修改这个值。
发布于 2010-02-24 10:31:44
即使不需要更新值,WCFSerializer也会使用设置器来反序列化对象(并重新设置值)。
这就是你想要的:WCF DataContracts
发布于 2012-08-06 19:21:40
[DataMember(Name = "PropertyName")]
public string PropertyName
{
get
{
return "";
}
private set
{ }
}
https://stackoverflow.com/questions/2323277
复制相似问题