WCF SOAP Сервис - PullRequest
       2

WCF SOAP Сервис

2 голосов
/ 23 июня 2011

Я работаю над сервисом WCF SOAP и заметил кое-что странное.

У меня есть следующий код в контракте на обслуживание

[ServiceContract]
public interface IService
{
   [OperationContract]
   int MethodA(int a, int b);

   [OperationContract]
   string MethodB(int a, int b);
}

Я не собираюсь давать реализованноекласс обслуживания, потому что реализованные MethodA и MethodB тривиальны и могут делать что угодно.

Когда я выбрал «Добавить веб-ссылку» и создать ссылку на прокси в приложении ASP.NET, которое я использую для использования служб,Я заметил, что два метода имеют разные аргументы в своей сигнатуре.

Например:

Метод A имеет следующие параметры сигнатуры

MethodA(int a,bool aSpecified,int b,bool bSpecified)

, а у MethodB только следующая сигнатура

MethodB(int a,bool aSpecified,int b,bool bSpecified,out int MethodBResult,bool methodBResultSpecified)

Почему у них разные варианты подписей?

Мне нужно, чтобы подпись MethodB была такой же, как у MethodA.

Что мне нужно было бы предоставить для двух последних параметров?

1 Ответ

3 голосов
/ 23 июня 2011

Если вы используете службу WCF, вы должны использовать «Добавить ссылку на службу» (вместо «Добавить веб-ссылку», чтобы создать прокси для службы. Эти * указанные параметры добавляются для «старого стиля») прокси, потому что вы можете предотвратить отправку параметров в службу (см. некоторые ответы на пост Что это за дополнительные параметры в моих методах прокси ASMX? для получения дополнительной информации)

...