如果我只读取DataContract的属性,会有什么不同呢?就像下面。
[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服务中创建这样的属性呢?
发布于 2014-12-26 01:39:32
虽然无法解释原因,但DataMemberAttribute类的文档指出:
“应用了DataMemberAttribute属性的属性必须同时具有get和set字段;它们不能是只获取或仅设置的。”
编辑
我很好奇为什么会出现这种情况,我也是这么想的。我在一个论坛上看到了这个:
“它需要得到/设置,以便在跨越应用程序边界传输时可以分配值。”(取自这里)。
该论坛文章的作者还指出,您可以使用该属性上的私有setter来解决此问题:
[DataMember]
public string datestring
{
get
{
return DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss");
}
private set
{
}
}注意,上面的代码没有经过测试,但应该可以工作。
https://stackoverflow.com/questions/27651691
复制相似问题