WCF扼流圈与否]性能;设置&QUOT ;.任何解决方法吗? [英] WCF chokes on properties with no "set ". Any workaround?

查看:172
本文介绍了WCF扼流圈与否]性能;设置&QUOT ;.任何解决方法吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些类,我路过作为服务方法的结果,那类有一个只能获得属性:

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.InvalidDataContractEx​​ception:未设置
  方法类型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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆