WCF Web サービスに接続された Silverlight アプリを作成する場合、Web サービスを使用する際に提示される唯一のオプションは、WS インターフェイスへの非同期呼び出しを行うことです。
すなわち
WebService client = new WebService();
client.ServiceMethodCompleted += new EventHandler<Args>(client_Handler);
client.ServiceMethodAsync();
client.close()
...followed by
void client_Handler(object sender, Args e)
{
//Next step, possibly another method?
}
Web アプリケーション (セーフティ ネット) を作成するときに非同期呼び出しを行う理由は理解できますが、各ステップが Web サービス呼び出しの結果に依存するメソッドを作成する場合、どのような設計パターンを使用するのでしょうか?
たとえば、訪問者のユーザー資格情報をチェックするメソッドが Web サービスにある場合、そのユーザーのグループに応じて何らかのアクションを実行します。
public MyPage() //Constructor
{
CheckCredentialsAsync();
if(result.IsUserTypeA)
{
//something complex
}
else if(result.IsUserTypeB)
{
//something else complex
}
...etc
}
以前の非同期呼び出し完了イベントによってトリガーされるメソッドの「ドミノ」設計を使用せずにこれを達成する方法はありますか? クライアント/サービスのやり取りが多いと、面倒になる可能性があるようです。
ありがとう!