WCF扼流圈与否]性能;设置&QUOT ;.任何解决方法吗? [英] WCF chokes on properties with no "set ". Any workaround?
问题描述
我有一些类,我路过作为服务方法的结果,那类有一个只能获得属性:
I have some class that I'm passing as a result of a service method, and that class has a get-only property:
[DataContract]
public class ErrorBase
{
[DataMember]
public virtual string Message { get { return ""; } }
}
我在服务端得到一个例外:
I'm getting an exception on service side:
System.Runtime.Serialization.InvalidDataContractException:未设置
方法类型MyNamespace.ErrorBase'属性'信息'。
System.Runtime.Serialization.InvalidDataContractException: No set method for property 'Message' in type 'MyNamespace.ErrorBase'.
我必须有这个属性,因为只有消气,我不能让用户为其分配一个值。任何解决办法,我可以使用?还是我错过了一些附加的属性?
I have to have this property as only getter, I can't allow users to assign it a value. Any workaround I could use? Or am I missing some additional attribute?
推荐答案
给消息的公共的getter但保护二传手,所以只有子类(与DataContractSerializer的,因为它欺骗:)可以修改的值。
Give Message a public getter but protected setter, so that only subclasses (and the DataContractSerializer, because it cheats :) may modify the value.
这篇关于WCF扼流圈与否]性能;设置&QUOT ;.任何解决方法吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!