そうする可能性は組み込まれていません。ただし、デリゲートを含むペイロードのクラスを作成することはできます。次に、CompositePresentationEvent をサブスクライブしたメソッド内からデリゲートを実行できます。
public class Payload
{
// Whatever you need here
...
public delegate void CallbackHandler();
public CallbackHandler Callback { get; private set; }
public Payload(CallbackHandler callback)
{
Callback = callback;
}
}
パブリッシャーでペイロードを作成します。
var p = new Payload(SomeVoidFunctionOnPublisher);
次に、サブスクライバーでイベントを処理した後、コールバックを発生させます。
public void HandleEvent(Payload p)
{
// Do something first
// Then callback
p.Callback();
}
述べる:
CompositePresentationEvents の背後にある主なアイデアは、コンポーネント間の分離です。これは、少なくとも概念的な意味では、コールバックによって弱められています。コールバックの必要性を完全に回避するために、基礎となるアーキテクチャを作り直すことを検討してください。あるいは、「コールバック」サブスクライバーによって発生した 2 番目のイベントが正当化されるかどうかを考えてみてください。