JNF
JNF

Reputation: 3730

What's wrong with Property without set?

I have a class used with a WCF service.

Interface defined

[WebGet(ResponseFormat = WebMessageFormat.Json,
        UriTemplate = "GetMyStuff/?p={param}",
        BodyStyle = WebMessageBodyStyle.Bare)]
MyResponseObject MyMethod(string param);

Among it's properties I had

public bool IsDecorated {
  get {
    return !String.IsNullOrEmpty(Decoration);
  }
}

resulting request refused to load.

After I added a

set { }

it worked.

Any piece of a clue?

Upvotes: 0

Views: 88

Answers (1)

Nikhil Agrawal
Nikhil Agrawal

Reputation: 48568

Readonly properties are not serialized. Because when they will be deserialized they will not have setter. To avoid that issue, read-only properties are not serialized in the first place.

Same case when set is private like

public List<Foo> Bar {get; private set;}`.

Read
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?

Compiler is not concerned whether you have written a logic inside setter. All it cares is that your property should have a setter.

Upvotes: 3

Related Questions