私は、WCFを使用してサーバーとクライアント間の真の非同期通信を実装するための代替案を研究しています。もちろん、私はにぶつかりましたAsyncPattern = true
。
少し騒ぎ立てた後、インターフェイスではなくAsyncPattern
サービスの実装を非同期にするために使用されていることを発見しました。つまり、クライアントに公開されているサービスはまだ同期しています。たとえば、次のように、 andという非同期ペアを想定します。BeginMethod
EndMethod
[ServiceContract]
interface IMyService
{
[OperationContract(AsyncPattern = true)]
IAsyncResult BeginMyMethod(...);
MyComplexResult EndMyMethod(...);
}
現在、そこから生成されたWSDLは、MyMethodと呼ばれる単一のメソッドのみを公開します。
<wsdl:portType name="IMyService">
<wsdl:operation name="MyMethod">
<wsdl:input wsaw:Action="http://tempuri.org/IMyService/MyMethod" message="tns:IMyService_MyMethod_InputMessage"/>
<wsdl:output wsaw:Action="http://tempuri.org/IMyService/MyMethodResponse" message="tns:IMyService_MyMethod_OutputMessage"/>
</wsdl:operation>
</wsdl:portType>
問題は、WCFがAPMの2つのメソッドを実際にクライアントに公開するように強制する構成はありますか?