C# イベントを指定するためだけのクラスがあり、このクラスをアプリケーションに渡すとします。
public class MyEvents
{
public event MyEventHandler OnBeforeSomeAction;
public event MyEventHandler OnSomeAction;
}
これらのイベントを呼び出すには、クラス自体から呼び出す必要があります。MyEvents
アプリケーションに渡されるときに他のクラスがこれらのイベントをトリガーできるようにする簡単な方法は、パブリック トリガー関数を作成することです。
public class MyEvents
{
public event MyEventHandler OnBeforeSomeAction;
public event MyEventHandler OnSomeAction;
public void TriggerOnBeforeSomeAction()
{
OnBeforeSomeAction();
}
public void TriggerOnSomeAction()
{
OnSomeAction();
}
}
ただし、このクラスに多くのイベントがある場合は、多くのトリガー メソッドも必要になります。リフレクションを使用してイベントを取得し、トリガーする方法はありますか? このようなもの:
public class MyEvents
{
public event MyEventHandler OnBeforeSomeAction;
public event MyEventHandler OnSomeAction;
public void TriggerEvent(string eventName)
{
var event = // some magic reflection.
event.Invoke();
}
}