public static void UseMemoryDataCollector <TCollector, TMatched, TTerminated>(this IComponentBuilder builder) where TCollector : MemoryDataCollector <TCollector, TMatched, TTerminated> where TMatched : ProcessMatchedEvent <TMatched> where TTerminated : ProcessTerminatedEvent <TTerminated> { builder.ConfigureComponent <TCollector>().SingleInstance(); builder.ConfigureStaticEventHandler <MemoryDataCollector <TCollector, TMatched, TTerminated> .MatchedHandler>(); builder.ConfigureStaticEventHandler <MemoryDataCollector <TCollector, TMatched, TTerminated> .TerminatedHandler>(); }