ich habe mit Visual Studio einen Webservice eingebunden. Der Funktioniert super nur will ich jetzt auch die Antwort des Webservice in die Datenbank schreiben. Wie bekomme ich die XML Antwort?
WebService sc = new Webservice(); AntwortObjekt ant = sc.getAntwort();
Ich dachte da gibt es eine Funktion wie "getXML" oder sowas.
Wenn Du, wie ich vermute, den Service eingebunden hast, in dem Du "Add Service Reference" (oder "Add Web Reference") angeklickt und die WSDL angegeben hast, dann hat Dir VS Code generiert, der das XML der Antwort parst und daraus ein .NET-Objekt erzeugt - in Deinem Beispiel wäre das das "AntwortObjekt ant". Da steht alles drin. Die XML-Darstellung der Antwort solltest Du also eigentlich gar nicht benötigen, es sei denn, Du hast irgendwas besonderes vor.
Update: Ok, Du hast etwas besonderes vor ;-) (Wobei ich Dir empfehlen würde, die Sinnhaftigkeit der Anforderung möglichst nochmal zu hinterfragen.) Du verwendest die "alte" (.NET 2.0) Unterstützung für Webservices, oft auch als ASP.NET Webservices bezeichnet. Bei dieser hat sich Microsoft viel Mühe gegeben, das ganze XML-/SOAP-Geraffel wegzukapseln und den Entwickler damit nicht zu belasten. Was ihnen so gut gelungen ist, dass Deine Anforderung nicht so einfach zu erfüllen ist. Ich hab das selbst auch noch nie gemacht, aber möglicherweise helfen Dir diese Links weiter:
Es könnte sich auch lohnen, über einen anderen Lösungsansatz nachzudenken.
Wenn Dir .NET 3.0 oder neuer zur Verfügung steht, könntest Du versuchen, den Webservice mit WCF anzusprechen ("Servicereferenz hinzufügen" wäre dann der Menüpunkt im deutschen VS 2008, glaube ich). WCF kapselt das SOAP-Handling zwar auch komplett weg, bietet aber tendenziell mehr und handlichere Eingriffspunkte, um sich in die Verarbeitungskette einzuklinken.
Wenn es sich nur um einen und noch dazu recht einfachen Service handelt, dann ist es am Ende möglicherweise einfacher, die Kommunikation "zu Fuß" über die WebClient-Klasse zu erledigen. Dann hast Du das XML direkt in der Hand, mußt Dich aber dafür auch darum kümmern, es selbst zu erzeugen und zu verarbeiten - was aber im Einzelfall einfacher sein kann, als einen ASP.NET-Webserviceclient aufzubohren.
Wirklich im Programm anzeigen, oder einfach nur irgendwohin loggen? Letzteres läßt sich konfigurieren. Falls Du tatsächlich im Programm-Code den XML-Text in die Hände bekommen mußt, wäre es wichtig zu wissen, ob Du den Service per WCF ("Add Service Reference") oder ASP.NET ("Add Web Reference") aufrufst.
SOAP-Extensions kann man server- und clientseitig benutzen. Am Server hat man eine web.config. Das Gegenstück am Client heißt app.config, ist aber prinzipiell genauso aufgebaut. Wenn Du noch keine app.config hast, dann leg Dir eine Datei mit diesem Namen im Wurzelverzeichnis Deines Executable-Projekts an und trag die SOAP-Extensions dort ein.
OK ich habe die jetzt iregendwie darein bekommen. Er ignoriert das nur. Kann es sein das das Trace in die App.Config vom Aufrufer eingetragen werden muss. Ich habe das alles in einer DLL gekapselt.
gibt es da keine andere möglichkeit? Er findet jetzt den Namespace aus meinem Assembly nicht. Muss die Trace Klasse auch in das Exe Projekt? Das wäre ja total doof....
Geht es um diese Stelle: <soapExtensionTypes> <add type="DeinNamespace.TraceExtension, DeineAssembly" /> </soapExtensionTypes> ? Es müßte eigentlich reichen, die Assembly mit der TraceExtension aus dem Exe-Projekt zu referenzieren und in der app.config den Typnamen und Assemblynamen korrekt anzugeben.