Optionale Parameter im ASP.NET-Webdienst

8

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?

    
Thomas Lötzer 15.06.2009, 11:03
quelle

2 Antworten

7

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%     
Shiraz Bhaiji 15.06.2009, 11:36
quelle
6

Die Primitiven sind keine Referenz -Typen, sondern sie sind value -Typen. Sie können einen Wert eingeben, der "nullable" ein paar Möglichkeiten gibt.

Der Kurzzeiger ist

%Vor%

oder lang-hand hier

%Vor%     
Greg Ogle 15.06.2009 23:50
quelle

Tags und Links