我有一个 Silverlight 项目调用 WCF 服务。服务方法 GetData 有一个参数 dataID,通过 GetDataAsync 调用,并由具有函数 BeginGetData 和 EndGetData 的自动创建的类处理。在某些情况下,调用会在 EndGetData 中引发 TimeoutException(这很好,它自己调用某些第三方服务的 WCF 服务,有时它们可能已关闭或有问题,所以我不想增加超时值)。
我想做的是能够使用发送到 GetDataAsync 的 dataID 采取行动(例如安排对 GetData 的新调用或向用户显示适当的错误消息,指示哪些数据流失败)。如何才能做到这一点?如果我在 EndGetData 中设置断点,则 IAsyncResult 类型的结果参数将是一个 System.ServiceModel.Channels.ServiceChannel.SendAsyncResult 对象,该对象具有 RPC 属性,我可以在调试时找到该参数,但该类不可用代码,因为它被声明为 Friend。
这是可能的还是有人对如何以另一种方式实现我想要的行为有想法?