属性 没有设置有什么问题?
What's wrong with Property without set?
我有一个 class 用于 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;}`.
阅读
Why are properties without a setter not serialized
Force XML serialization to serialize readonly property
Why isn't my public property serialized by the XmlSerializer?
编译器不关心你里面有没有写逻辑setter。它只关心你的 属性 应该有一个 setter.
我有一个 class 用于 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;}`.
阅读
Why are properties without a setter not serialized
Force XML serialization to serialize readonly property
Why isn't my public property serialized by the XmlSerializer?
编译器不关心你里面有没有写逻辑setter。它只关心你的 属性 应该有一个 setter.