Wie kann ich WCF zwingen, WSDLs mit den erforderlichen Methodenparametern automatisch zu generieren (minoccurs = "1")?

Bei der Verwendung von WCF und OperationContracts habe ich die folgende Methode definiert:

    [OperationContract]
    [FaultContract(typeof(ValidationFault))]
    [FaultContract(typeof(FaultException<ExceptionDetail>))]
    int DoSomething(int someId, MyComplexType messageData);

Wenn dies von der WCF-Laufzeit in eine WSDL übersetzt wird, wird minoccurs = "0" für die Parameter someId und messageData aufgelistet (und anschließend ein Laufzeitfehler ausgegeben, wenn diese Parameter fehlen).

Wenn ich mit SoapUI einen Proxy generiere, erhalte ich Folgendes:

  <com:DoSomething>
     <!--Optional-->
     <com:EventId>1</com:EventId>
     <!--Optional-->
     <com:myComplexType >
        <com:id>1</com:id>
     </com:myComplexType >
  </com:DoSomething>

Das ID-Feld in MyComplexType ist mit dem DataMemeber-Attribut unter Verwendung von IsRequired = "true" gekennzeichnet und wird daher als obligatorisch angezeigt.

Es ist offensichtlich irreführend, wenn die WSDL angibt, dass ein Parameter optional ist, wenn dies nicht der Fall ist, aber ich sehe keine offensichtliche Möglichkeit, den OperationContract zu kennzeichnen, um WCF zu zwingen, diese Parameter nach Bedarf zu erkennen und verfügbar zu machen.

Ich bin ein wenig ratlos, dass es keinen offensichtlichen Weg gibt, dies zu tun (Lesen von Intellisense / MSDN / Google). Oder ich werde blind und übersehen etwas Offensichtliches.

Irgendwelche Hinweise?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage