當編寫一個Silverlight應用程序連接到WCF Web服務時,我們在使用Web服務時唯一提供的選項是對WS接口進行異步調用。異步Web服務設計模式
即
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?
}
雖然我寫的webapps當(安全網)瞭解異步調用的原因,將一個其中每個步驟是依賴的結果,使用什麼類型的設計模式,如果一個方法是寫Web服務調用?例如,如果在Web服務中有一種方法檢查訪問者的用戶憑證,並且取決於該用戶的組,則會執行某些操作。
public MyPage() //Constructor
{
CheckCredentialsAsync();
if(result.IsUserTypeA)
{
//something complex
}
else if(result.IsUserTypeB)
{
//something else complex
}
...etc
}
有沒有辦法做到這一點,而不使用由先前的異步調用完成的事件引發了「多米諾骨牌」的方法設計?看起來如果有很多客戶/服務交互可能會變得混亂。
謝謝!