How to prevent 'Specified' properties being generated in WCF clients?

silverlight, wcf, wcf-proxy

Solution

try this in your WCF service where the property is declared

[DataMember(IsRequired=true)]
public bool testEnvField { get; set; }

`IsRequired=true` will negate the need for the testEnvFieldSpecified property

Problem

I have two .NET 3.5 WCF services build with VS2008. I have two WCF clients in Silverlight to consume these services. The clients are generated with the 'Add Service Reference'. I am using Silverlight 4. ONE of the proxies is generated with `Specified` properties for each property. This is a 'message-in' class for my service method : ``` // properties are generated for each of these fields private long customerProfileIdField; private bool customerProfileIdFieldSpecified; private bool testEnvField; private bool testEnvFieldSpecified; ``` Now my other service (still with a Silverlight client) does NOT generate `Specified` properties. Now I don't care about 'tenets of good SOA'. I just want to get rid of these damn properties because in the context of what I'm doing I absolutely hate them. There has to be some difference between the two services - but I don't want to have to completely rip them apart to find out the difference. A similar question before had the answer 'you cant do it' - which is definitely not true because I have it - I just don't know what I did differently. Edit: I am now in a situation where I regenerate my Silverlight 4 proxy to my 3.5 WCF service (all on the same localhost machine) that sometimes I get 'Specified' properties and sometimes I don't. I no longer think (as I suspected originally) that this is due solely to some endpoint configuration or service level [attribute]. Theres certain triggers in the message itself that cause Specified to be generated (or not). There may be many factors involved or it may be something very simple.

Original source

Related problems