Проведя много времени на исследованиях, пытаясь использовать различные подходы, я решил задать здесь вопрос, так как сейчас я не в курсе. То, что я хочу достичь, это называют операцию sendDocument на веб-сервиса, который находится прямо здесь:C# WSDL - метод вызова и получение ответа
https://test-bramka.edeklaracje.gov.pl/uslugi/dokumenty?wsdl
Я добавил ссылку на службу к моему проекту VS успешно. Тогда я попытался сделать это, как и все предлагал через Интернет:
eDeklaracjeTest client = new eDeklaracjeTest();
client.sendDocument(b1);
Но VS продолжает говорить мне, что eDeklaracjeTest это пространство имен, но используется как тип. При объявлении это нравится:
var client = new eDeklaracjeTest.sendDocument();
Это звучит правильно и после этого я могу сделать:
client.document = b1;
Но это не вызывается метод sendDocument. Что не так с моим звонком? Как правильно вызвать sendDocument, чтобы я мог подтвердить, что мой запрос был получен и как я могу получить ответ?
ОБНОВЛЕНИЕ После нескольких часов исследований и одного вопроса для коллеги с работы я наконец получил ответ (благодаря CodeCaster, так как его помощь также была очень полезной). Правильный код для этого WebService выглядит так:
eDeklaracjeTest.sendDocumentResponse resp;
byte[] b1 = null;
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
var client = new eDeklaracjeTest.GateServicePortTypeClient("GateServiceSOAP11port");
var documentToSend = new eDeklaracjeTest.sendDocument();
documentToSend.document = b1;
client.Open();
resp = client.sendDocument(documentToSend);
Спасибо всем, кто пытался помочь мне в этом вопросе.
При добавлении ссылки на службу вы ввели пространство имен 'eDeklaracjeTest'? Затем вам понадобится новый eDeklaracjeTest. {SomeServiceName} Client(). – CodeCaster
Да, пространство имен было eDeklaracjeTest. Однако добавив его, как вы предложили, - eDeklaracjeTest client = new eDeklaracjeTest {sendDocument} .Client(); results in Имя 'sendDocument' не существует в текущей ошибке контекста. –
Да, откройте браузер объектов и проверьте, какие имена _do_ существуют в этом пространстве имен. – CodeCaster