Jak zmusić WCF do automatycznego generowania WSDL z wymaganymi parametrami metody (minoccurs = „1”)?

Podczas korzystania z WCF i OperationContracts zdefiniowałem następującą metodę:

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

Gdy zostanie to przetłumaczone na WSDL przez środowisko wykonawcze WCF, kończy się na minoccurs = "0" wymienionym dla parametrów someId i messageData (a następnie zgłasza błąd wykonania, jeśli brakuje tych parametrów).

Jeśli wygeneruję proxy za pomocą SoapUI, otrzymam coś, co wygląda tak:

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

Pole id w MyComplexType jest oznaczane atrybutem DataMemeber przy użyciu IsRequired = "true", a zatem jest ujawnione jako obowiązkowe.

Jest oczywiste, że WSDL określa, że ​​parametr jest opcjonalny, gdy nie jest, ale nie widzę żadnego oczywistego sposobu na oznaczenie OperationContract, aby wymusić na WCF rozpoznanie i ujawnienie tych parametrów zgodnie z wymaganiami.

Jestem nieco zaskoczony, że nie wydaje się oczywistym sposobem na to (czytanie intellisense / msdn / google). Albo idę na oślep i nie zauważam czegoś oczywistego.

Jakieś wskazówki?

questionAnswers(2)

yourAnswerToTheQuestion