我有一些类作为服务方法的结果传递,并且该类有一个只读属性:
[DataContract]
public class ErrorBase
{
[DataMember]
public virtual string Message { get { return ""; } }
}
我在服务端遇到异常:
System.Runtime.Serialization.InvalidDataContractException: No set method for property 'Message' in type 'MyNamespace.ErrorBase'.
我必须将这个属性作为唯一的 getter,我不能让用户给它赋值。我可以使用任何解决方法吗?还是我缺少一些额外的属性?
最佳答案
给 Message 一个公共(public)的 getter 但 protected setter,这样只有子类(和 DataContractSerializer,因为它作弊 :) 可以修改值。
关于c# - WCF 在没有 "set "的属性上阻塞。任何解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2323277/