[Custom Event Manager] How can I trigger events base on a list of actions

Hello everybody,

so like the title try to say, I’m actually coding a custom event manager, with 3 parts.
An event manager, an event listener and an event trigger.
The manager and the listener work well but I have a little problem with the event trigger.

And because an image sometimes is more understandable than words, this is my script on the inspector.
I use FullInspector from “sient” because I have to serialize derived class for my data models.

Finally I have a list of “ActionModelBase” and each item on this list contain an Unity event type
(Awake, Update, …), an action and one or more data models.
(All data models derived from ModelBase and I use reflexion to find the good data model for the chosen action.)

[Serializable]
public class ActionModelBase : ModelBase
{
   //this is an enum (Unity method name)
   public UnityEventTypeEnum EventType { get; set; } 
   //this is another enum (Action name)
   public CustomEventTypeEnum ActionType { get; set; }
   public ModelBaseArray[] Models { get; set; }
}

So know that I have all the data, and this is where I have a problem, how can I say to Unity that for each item on that list, he must call the right delegate only at the moment who catch with the Unity method in EventType.

For the moment I wrote this, but It doesn’t work really well and I think that it’s a little heavy.
Is there a better way to do what I try to do ?

[...]
//this is my main list
public List<ActionModelBase> ActionList { get; set; }
[...]
private void ExecuteAction()
{
     StackTrace stackTrace = new StackTrace();
     string parentMethod = stackTrace.GetFrame(1).GetMethod().Name;

     foreach (var item in ActionList)
     {
          if (item.EventType.ToString() == parentMethod)
          {
               switch (item.ActionType)
               {
                    case CustomEventTypeEnum.ShowCursorAction:
                         EventManager.Instance.ShowCursorAction(item.Models[0].ModelItem as CursorModel);
                         break;
                    default:
                         break;
                }
         }
    }
}

Code that I call in each unity method like this :

private void Start()
{
     this.ExecuteAction();
}
private void FixedUpdate()
{
     this.ExecuteAction();
}
private void Update()
{
     this.ExecuteAction();
}

Anybody ?
If you think you can help me but that you don’t understand something, feel free to ask.