在我的SL4应用程序中,我调用了一个服务svc.SubmitAsync()。由于这是一个异步调用,一旦命中该方法,我的代码就会进入下一行。只要用户输入正确的用户名和密码,就可以。如果他们不这样做,EndSubmit()会抛出一个异常。 EndSubmit()在References.cs中,是自动生成的Silverlight代码的一部分。在Silverlight中,如何在异步调用期间处理错误?
我试着在try-catch中包装svc.SubmitAsync(),但这是一个异步调用,try-catch块在异常甚至被抛出之前完成。
如何捕获此错误?
谢谢!
更新1
public void SubmitTweetAsync(TestSilverlightApp.svc.Tweet tweet, object userState) {
if ((this.onBeginSubmitTweetDelegate == null)) {
this.onBeginSubmitTweetDelegate = new BeginOperationDelegate(this.OnBeginSubmitTweet);
}
if ((this.onEndSubmitTweetDelegate == null)) {
this.onEndSubmitTweetDelegate = new EndOperationDelegate(this.OnEndSubmitTweet);
}
if ((this.onSubmitTweetCompletedDelegate == null)) {
this.onSubmitTweetCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnSubmitTweetCompleted);
}
base.InvokeAsync(this.onBeginSubmitTweetDelegate, new object[] {
tweet}, this.onEndSubmitTweetDelegate, this.onSubmitTweetCompletedDelegate, userState);
}
更新2 - 这是一个WCF服务。
你能发表SubmitAsync的代码吗? – dtb 2010-08-22 16:02:01
什么类型的服务? WCF? – 2010-08-22 16:04:09
有没有方法BeginSubmit有任何机会? – dtb 2010-08-22 16:10:47