WCF サービスを呼び出す Silverlight プロジェクトがあります。サービス メソッド GetData には 1 つのパラメーター dataID があり、GetDataAsync を介して呼び出され、関数 BeginGetData および EndGetData を使用して自動作成されたクラスによって処理されます。場合によっては、呼び出しによって EndGetData で TimeoutException がスローされます (これは問題ありません。WCF サービス自体がサード パーティのサービスを呼び出して、ダウンしている場合や問題がある場合があるため、タイムアウト値を増やしたくありません)。
私がやりたいことは、GetDataAsync に送信された dataID を使用してアクションを実行できるようにすることです (たとえば、GetData への新しい呼び出しをスケジュールしたり、失敗したデータ ストリームを示す適切なエラー メッセージをユーザーに表示したりします)。これはどのように行うことができますか?EndGetData にブレークポイントを設定すると、IAsyncResult 型の結果パラメーターは System.ServiceModel.Channels.ServiceChannel.SendAsyncResult オブジェクトになります。このオブジェクトには、デバッグ時にパラメーターを見つけることができる RPC プロパティがありますが、このクラスはからは利用できません。 Friend と宣言されているためです。
これはまったく可能ですか、それとも私が望む動作を別の方法で実装する方法について誰かがアイデアを持っていますか?