首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >WCF在没有"set“的属性上阻塞。有什么解决方法吗?

WCF在没有"set“的属性上阻塞。有什么解决方法吗?
EN

Stack Overflow用户
提问于 2010-02-24 10:29:31
回答 9查看 25.2K关注 0票数 99

我有一些作为服务方法的结果传递的类,这个类有一个get-only属性:

代码语言:javascript
复制
[DataContract]
public class ErrorBase
{
  [DataMember]
  public virtual string Message { get { return ""; } }
}

我在服务端得到了一个异常:

“MyNamespace.ErrorBase”“中的属性”“System.Runtime.Serialization.InvalidDataContractException:”“没有设置方法”“

”“。”

我必须让这个属性作为唯一的getter,我不能允许用户给它赋值。有什么我可以使用的变通方法吗?或者我是否遗漏了一些额外的属性?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-02-24 10:34:35

为Message提供一个公共的getter和受保护的setter,这样只有子类(和DataContractSerializer,因为它欺骗:)可以修改这个值。

票数 109
EN

Stack Overflow用户

发布于 2010-02-24 10:31:44

即使不需要更新值,WCFSerializer也会使用设置器来反序列化对象(并重新设置值)。

这就是你想要的:WCF DataContracts

票数 13
EN

Stack Overflow用户

发布于 2012-08-06 19:21:40

代码语言:javascript
复制
[DataMember(Name = "PropertyName")]
public string PropertyName
{
    get
    {
        return "";
    }
    private set
    { }
}
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2323277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档