4

WCFを使用してSOAPWebサービスを生成していますが、現在、次の問題に直面しています。

  • このように定義されたOperationContractがあります

[OperationContract] void InsertSomeData(string version, int someId);

  • soapUIを使用してサービスをテストしているときに、リクエストでsomeIdタグを削除すると、サービスで値0を受け取ることに気付きました。
  • これは標準の動作ですか?実際には、パラメータがnull許容ではないため、サービスが何らかの例外をスローすると思います。
  • 渡された実際の値としての0と欠落しているタグの間でサービスを異ならせることはできますか、それともすべてのパラメーターを事前にnull可能にする必要がありますか?

よろしくお願いします。

4

1 に答える 1

4

ハック・イット・アバウトの方法:

[OperationContract]
public void InsertSomeData(MyData data){...}

[DataContract]
public class MyData{
[DataMember]
public string version{get;set;}
[DataMember(IsRequired=true)]
public int someId{get;set;}

}

より長く曲がりくねった、しかしより良い方法:http ://thorarin.net/blog/post/2010/08/08/Controlling-WSDL-minOccurs-with-WCF.aspx

于 2012-11-19T13:54:17.157 に答える