Comment puis-je forcer WCF à générer automatiquement des WSDL avec les paramètres de méthode requis (minoccurs = "1")?

Lors de l'utilisation de WCF et OperationContracts j'ai la méthode suivante définis:

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

Quand cela se traduit à un WSDL par la FMC de l'exécution, il se retrouve avec avec minoccurs="0" répertoriés pour les paramètres someId et messageData (et par la suite déclenche une erreur d'exécution si ces paramètres sont manquants).

Si je générer un proxy à l'aide de SoapUI-je obtenir quelque chose qui ressemble à ceci:

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

Le champ id dans MyComplexType est marqué avec DataMemeber attribut à l'aide de IsRequired="true" et est donc exposée comme obligatoire.

Il est évidemment tout à fait trompeur pour le WSDL pour indiquer qu'un paramètre est facultatif, quand ce n'est pas le cas, mais je ne vois aucun moyen évident de balisage de la OperationContract à la force de la WCF de reconnaître et d'exposer ces paramètres requis.

Je suis un peu perplexe, il ne semble pas d'une manière évidente pour ce faire (lecture intellisense /msdn /google). Ou alors je suis aveugle et donnant sur quelque chose d'évident.

Toute indices?

source d'informationauteur DavidWhitney