没有设置的财产有什么问题?

时间:2015-05-19 08:01:21

标签: c# wcf serialization properties datacontract

我有一个与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 { }

它有效。

任何一条线索?

1 个答案:

答案 0 :(得分:3)

Readonly属性未序列化。因为当他们被反序列化时,他们将不会有二重奏。为避免该问题,首先不会对只读属性进行序列化。

setprivate时的情况与

相同
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中编写了逻辑。它关心的是你的财产应该有一个二传手。