![](/img/trans.png)
[英]C# DataContract and Serializing readonly bool field to always be 'true'
[英]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.