首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只读DataContract

只读DataContract
EN

Stack Overflow用户
提问于 2014-12-26 00:00:26
回答 1查看 104关注 0票数 0

如果我只读取DataContract的属性,会有什么不同呢?就像下面。

代码语言:javascript
复制
[DataContract]
public class data
{
  [DataMember]
  public string datestring 
  { 
     get { return DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"); } 
  }
  //
  // Other proprties
  //
}

我对WCF服务的Jquery请求每次都被中止,当我删除这个只读属性时,它就起作用了。那么,为什么我不能在我的DataContract of WCF服务中创建这样的属性呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-26 01:39:32

虽然无法解释原因,但DataMemberAttribute类的文档指出:

“应用了DataMemberAttribute属性的属性必须同时具有get和set字段;它们不能是只获取或仅设置的。”

编辑

我很好奇为什么会出现这种情况,我也是这么想的。我在一个论坛上看到了这个:

“它需要得到/设置,以便在跨越应用程序边界传输时可以分配值。”(取自这里)。

该论坛文章的作者还指出,您可以使用该属性上的私有setter来解决此问题:

代码语言:javascript
复制
[DataMember]
public string datestring
{
    get
    {
        return DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"); 
    }
    private set
    {
    }
}

注意,上面的代码没有经过测试,但应该可以工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27651691

复制
相关文章

相似问题

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