2016-09-19 3 views
0

Nachdem ich viel Zeit für die Forschung verbracht habe, versuche es mit verschiedenen Ansätzen, habe ich beschlossen, hier eine Frage zu stellen, da ich jetzt keine Ideen mehr habe. Was ich will, erreichen, ist ein sendDocument Betrieb ruft auf einem Webservice, die hier befindet:C# WSDL - Call-Methode und Antwort erhalten

https://test-bramka.edeklaracje.gov.pl/uslugi/dokumenty?wsdl 

ich erfolgreich einen Dienstverweis auf mein VS-Projekt hinzugefügt habe. Dann habe ich versucht, es zu tun, wie jeder über das Internet vorschlägt:

eDeklaracjeTest client = new eDeklaracjeTest(); 
client.sendDocument(b1); 

Aber VS hält mich auf zu sagen, dass eDeklaracjeTest ein Namespace ist, sondern wie eine Art verwendet. Bei der Deklaration es mag:

var client = new eDeklaracjeTest.sendDocument(); 

Es richtig klingt und danach kann ich tun:

client.document = b1; 

Aber das stellt nicht sendDocument Methode. Was ist falsch an meinem Anruf? So rufen Sie sendDocument korrekt auf, damit ich bestätigen kann, dass meine Anfrage eingegangen ist und wie ich eine Antwort erhalten könnte?

UPDATE Nach einigen Stunden der Recherche und einer Frage an Kollegen von der Arbeit, habe ich endlich eine Antwort erhalten (dank CodeCaster, da seine Hilfe auch sehr hilfreich war). Der korrekte Code für diesen WebService sieht folgendermaßen aus:

Vielen Dank an alle, die mir bei diesem Problem geholfen haben.

+0

Haben Sie beim Hinzufügen einer Service-Referenz den Namespace 'eDeklaracjeTest' eingegeben? Dann brauchen Sie einen 'neuen eDeklaracjeTest. {SomeServiceName} Client()'. – CodeCaster

+0

Ja, Namensraum war eDeklaracjeTest. Fügen Sie es jedoch wie vorgeschlagen hinzu - eDeklaracjeTest client = new eDeklaracjeTest {sendDocument} .Client(); Der Name 'sendDocument' ist im aktuellen Kontextfehler nicht vorhanden. –

+0

Ja, also öffne den Objektbrowser und prüfe, welche Namen _do_ in diesem Namespace existieren. – CodeCaster

Antwort

0

Ja, weil Sie die Klammer () bei der Instanziierung der Service-Proxy-Klasse fehlt. Es sollte

sein
var client = new eDeklaracjeTest().sendDocument(); 
+0

Wenn Sie wie vorgeschlagen definiert sind, tritt ein Fehler wie auf dem Screenshot http://i63.tinypic.com/zkrec0.png auf. –

+0

@MariuszMizgier, poste den Fehlertext anstelle von Bild und außerdem zeigt dein Bild nichts.Stellen Sie auch einen Code – Rahul

+0

Ich habe versucht, es mit Ihrem Vorschlag zu tun: var client = new eDeklaracjeTest(). SendDocument(); client.document = b1; Aber VS 2015 sagt weiter, dass eDeklaracjeTest ein Namespace ist, aber als ein Typ verwendet wird. Wenn Sie mich führen könnten, was sollte ich mehr bieten (ich habe gerade eine Service-Referenz zu einem VS-Projekt hinzugefügt), wäre ich dankbar. b1 definition ist - byte [] b1 = System.Text.Encoding.UTF8.GetBytes (xmlSigned); –