繁体   English   中英

只读数据合同

[英]Readonly DataContract

如果我将DataContract的属性设置为只读,会有什么区别? 像下面

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

我对WCF服务的Jquery请求每次都异常中止,当我删除此readonly属性时,它起作用了。 那么,为什么不能在WCF服务的DataContract中创建这样的属性?

尽管没有解释原因,但DataMemberAttribute类的文档指出:

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

编辑

我很好奇为什么会这样,所以进行了一些搜索。 我在一个论坛上遇到了这个问题:

“需要获取/设置它,以便在跨应用程序边界传输它时可以分配值。” (从此处获取 )。

该论坛帖子的作者还指出,您可以在媒体资源上使用私有设置器来解决此问题:

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

请注意,上面的代码未经测试,但可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM