Если я добавляю веб-ссылку от.NET 1,1 клиента к сервису WCF, методы прокси, сгенерированные в клиенте, содержат дополнительный параметр, заканчивающийся суффиксом, 'Указанным' для каждого сервисного параметра метода, например.
[OperationContract]
string HelloWorld(string foo, int bar);
результаты в:
Service1.HelloWorld(string foo, bool fooSpecified, int bar, bool barSpecified);
Мои сервисные параметры не являются дополнительными поэтому, каковы эти дополнительные параметры в клиенте, и как я могу избавиться от них?
Это связано с различием в механизмах сериализации, используемых в веб-службах WCF и ASMX. { {1}} Чтобы избежать лишних параметров, необходимо указать атрибут XmlSerializerFormat в ServiceContract.
для добавления прочтите это: http://msmvps.com/blogs/windsor/archive/2008/05/17/calling-wcf-services-from-net-1-1. aspx
Вероятно, вам нужно указать, что ваши параметры являются обязательными
[OperationContract]
string HelloWorld([RequiredDataParameter] string foo,
[RequiredDataParameter] int bar);
Проблема заключается в параметрах типа значения, когда им разрешено отсутствовать. .NET 1.1 не может указать это без параметров *, указанных
. Им необходимо установить значение true, чтобы указать, что отправляется соответствующий параметр.
.NET 1.1 Веб-службы не имеют понятия null, поэтому WCF генерирует эти дополнительные свойства для вас. fooSpecified = false означает, что foo действительно null.