/// <summary>
/// Creates an Event Handler for the EventInfo Passed to Hook it the Event Up to an Event Recorder.
/// </summary>
private static EventRecorder Monitor(object eventSource, EventInfo eventInfo)
{
// Create EventRecorder
var eventRecorder = new EventRecorder(eventSource, eventInfo.Name);
// Subscribe EventRecorder to event
var handler = EventSubscriber.GenerateHandler(eventInfo.EventHandlerType, eventRecorder);
eventInfo.AddEventHandler(eventSource, handler);
return eventRecorder;
}