在编写连接到 WCF Web 服务的 Silverlight 应用程序时,我们在使用 Web 服务时看到的唯一选项是对 WS 接口进行异步调用。
IE
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
}
有没有办法在不使用由先前异步调用完成事件触发的方法的“多米诺”设计的情况下完成此操作?如果有很多客户端/服务交互,它似乎会变得混乱。
谢谢!