我有一个与WCF服务一起使用的类
接口定义
[WebGet(ResponseFormat = WebMessageFormat.Json,
UriTemplate = "GetMyStuff/?p={param}",
BodyStyle = WebMessageBodyStyle.Bare)]
MyResponseObject MyMethod(string param);
在它的属性中我有
public bool IsDecorated {
get {
return !String.IsNullOrEmpty(Decoration);
}
}
结果请求被拒绝加载。
在我添加
之后set { }
它工作。
有线索吗?
只读属性未序列化。因为当它们被反序列化时它们不会有setter。为了避免这个问题,只读属性一开始就不序列化。
与set
是private
类似
public List<Foo> Bar {get; private set;}`.
读
为什么没有setter的属性没有被序列化
强制XML序列化序列化只读属性
为什么我的公共属性没有被XmlSerializer序列化?
编译器并不关心你是否在setter内部编写了逻辑。它所关心的是你的属性应该有一个setter