Um etwas mehr Kontrolle über die Erzeugung von Klassen aus .xsd Dateien zu haben verwende ich nicht
das mitgelieferte xsd.exe sondern ein VS Plugin http://xsd2code.codeplex.com/
Es wird über Kontext-Menü auf der XSD Datei gestartet. Deshalb ist diese auch hier im Projekt enthalten.
Damit man einen Web-Service erhält, der nicht die private Felder sondern die Properties der
generierten Klasse verwendet, muss man
[OperationContract] und [XmlSerializerFormatAttribute()]
auf der Interface-Methode verwenden.
Neu:
Der Namespace darf nicht im endgültigen SOAP Call enthalten sein. Dazu habe ich in den
generierten Service-Klassen den Namespace auf "" gesetzt.wsdl.exe war nicht notwendig!
so:
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.openuri.org/submit", RequestNamespace="", ResponseElementName="submitResponse", ResponseNamespace="", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
13.11.23
Anpassung Timestamp Root Objekt als String(!) statt serialisiertem DateTime um die Nano-Sekunden
wegzubekommen und die DBH String Formatierung hinzukriegen. War vorher zwar auch nicht so aber Heinz-Dieter hat
es so angemerkt.
Achtung: Bei einer Neugenerierung muss man es vermutlich wieder nachziehen.