Я использую веб-сервис SOAP, созданный внешней стороной. Использование .net core 3.0, когда я сгенерировал мыльный клиент с помощью утилиты svc (добавив подключенную ссылку), не позволил бы мне отправлять правильные сообщения.
Итак, я создал клиента следующим образом:
[ServiceContract(Namespace = "SomeNameSpace")]
public interface IUMService
{
[OperationContract(Action = "SendMessage", Name = "SendMessageRequest", ReplyAction = "SendMessageResponse", AsyncPattern = true)]
Task<ReturnObject> SendMessageRequestAsync(Object1 obj1, Obj2 obj2);
}
Сначала я просто получил бы нулевой ответ, поэтому я изменил свой тип возвращаемого значения на stream, который дал мне следующую ошибку:
Запустить элемент 'SendMessageRequestResponse' из пространства имен 'urn: be: healthconnect: unifiedmessagingservice: 1_0: common' ожидается. Найден элемент 'SendMessageResponse' из пространства имен 'urn: be: healthconnect: unifiedmessagingservice: 1_0: common'. Строка 1, позиция 262.
С моим базовым пониманием клиентов Soap об этом должен позаботиться атрибут ReplyAction, кроме случаев, когда это не так.