必要なメソッドパラメータ(minoccurs =“ 1”)を使用してWCFでWSDLを自動生成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1438623

  •  08-07-2019
  •  | 
  •  

質問

WCFとOperationContractsを使用しながら、次のメソッドを定義しています:

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

これがWCFランタイムによってWSDLに変換されると、minoccurs =&quot; 0&quot;パラメーターsomeIdおよびmessageDataにリストされています(これらのパラメーターが欠落している場合、その後ランタイムエラーがスローされます)。

SoapUIを使用してプロキシを生成すると、次のようになります。

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

MyComplexTypeのidフィールドは、IsRequired =&quot; true&quot;を使用してDataMemeber属性でマークアップされます。したがって、必須として公開されます。

WSDLがパラメーターがオプションではない場合にオプションであることを指定することは明らかに誤解を招くかもしれませんが、OperationContractをマークアップしてWCFがこれらのパラメーターを必要に応じて認識および公開するようにする明らかな方法はありません。

これを行うための明白な方法がないように見えるので少し困惑しています(intellisense / msdn / googleを読んで)。または、私は盲目になり、明らかなものを見落とします。

手がかりはありますか

他のヒント

MyComplexTypeが[DataContract]属性でマークされていることを確認します。

自分のWCFコントラクトの場合、コントラクトに関連するオブジェクトのチェーン全体がそのようにマークされるまで、生成されたwsdlのIsRequired = trueに対してminOccurs = 1が表示されないことがわかりました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top