コールバックコントラクトインターフェイスがIMyServiceCallback
と呼ばれていると仮定すると、それがイベントを発生させるために望んでいたとき、あなたのサービスには、次のコードを実行します:
IMyServiceCallback callback = OperationContext.Current.GetCallbackChannel<IMyServiceCallback>();
callback.OnGetMapStoryboardsComplete(...);
私はthis articleが非常に役に立ちました。それは、いずれかのすべてのイベントシナリオ、IMOを満たすべきである過渡事象システムおよび永続化された事象システムを記述する。
HTH
は、コールバック契約を設定するには:あなたが行われた後
[ServiceContract(CallbackContract = typeof(IMyServiceCallback))]
interface IMyService
{
// ...
}
:
interface IMyServiceCallback
{
[OperationContract(IsOneWay = true)]
void OnGetMapStoryboardsComplete(object sender, List<Storyboard>);
}
次に、あなたはそれがこのコールバックを使用していることを、あなたのサービス契約に指定する必要がありあなたのサービスを実装し、そのサービスへの参照を作成します。
:あなたはそれにイベントを処理するオブジェクトへの参照で構築された
InstanceContext
を渡す必要があるサービスにクライアントから接続する場合
class EventHandler : IMyServiceCallback
{
public void OnGetMapStoryBoardsComplete(object sender, List<Storyboard>)
{
// Do whatever needs to be done when the event is raised.
}
}
:クライアントは、IMyServiceCallback
を実装するクラスを含める必要があります
EventHandler eventHandler = new EventHandler();
MyServiceClient client = new MyServiceClient(new InstanceContext(eventHandler));
意味がありますか?
私はコールバック契約を結んでいないと思いますが、どうすれば設定できますか? –
私の答えを編集してあなたに見せる(コードタグが必要)。 1分... – Malcolm
あなたの質問に答えますか、それでも問題はありますか? – Malcolm