Ich habe einen ASP.NET-Webdienst. Dieser Webservice funktioniert einwandfrei. Die WSDL listet jedoch einige Parameter als optional (minoccurs = 0) und andere als nicht optional auf. Einige der optionalen Parameter sind tatsächlich nicht optional, andere, die als nicht optional markiert sind, sind optional. Ich möchte das beheben, aber ich kann den Ort nicht finden, von dem diese Information kommt.
Es scheint mir, dass alle primitiven Typen (int, boolean usw.) nicht optional sind und alle anderen Parameter als optional markiert sind. Ich kann jedoch keinen Ort finden, wo ich das ändern kann. Ich möchte Standardwerte für die Grundelementwerte angeben, wenn sie in der Anforderung fehlen und angeben, welcher nicht primitive Parameter tatsächlich optional ist. Wo mache ich das?
Ich gehe davon aus, dass Sie, wenn Sie ASP.net-Webdienste sagen, Webdienste mit ASMX-Erweiterung erstellen. Ich denke, dass in diesem Fall passiert, dass alle nullwertfähigen Typen optional werden und keine Nullwerte zulässig sind.
Sie könnten die generierte WSDL-Datei vielleicht manuell bearbeiten. Aber dann müssten Sie diese Arbeit wiederholen, wenn die WSDL neu generiert wurde.
Ich würde vorschlagen, dass Sie mit basisHttpBinding zu WCF wechseln (mit Ausnahme des Namens Ihres Dienstes sollten Ihre Kunden den Unterschied nicht bemerken).
Mit WCF können Sie einfach den Parameter im Datenvertrag wie gewünscht markieren oder nicht:
%Vor%Tags und Links .net asp.net asmx web-services