Точно такой же вопрос был опубликован здесь .
Другой способ избежать создания дополнительного логического параметра на клиентском прокси при использовании .NET 2.0 - переключиться на RPC-стиль, включающий в контракте на обслуживание (по умолчанию для WCF и ASMX используется Стиль документа).
Таким образом, XmlSerializer на клиенте будет гарантировать, что параметр всегда появляется в запросах SOAP , поскольку он является частью спецификации SOAP 1.1, которая применяется при использовании кодировки в стиле RPC .
В WCF вы можете указать стиль кодирования, используя атрибут DataContractFormat, либо на уровне службы, либо на уровне операций.
[ServiceContract]
public interface IService
{
[OperationContract]
[DataContractFormat(Style = OperationFormatStyle.Rpc)]
string GetData(int value);
}
Более подробную информацию о различиях между стилем RPC и стилем документа в SOAP можно найти здесь .
В любом случае, пожалуйста, внимательно рассмотрите последствия изменения договора на ваши услуги, поскольку это может потенциально нарушить совместимость с любыми существующими клиентами.