public void Register(IContainerManager containerManager, CMS.Common.Runtime.ITypeFinder typeFinder) { var assemblies = typeFinder.GetAssemblies() .Where(x => !IsIgnoredAssembly(x)) .ToList(); // Handler Registry var handlerRegistry = new DefaultEventHandlerRegistry(); handlerRegistry.RegisterAssemblies(assemblies); containerManager.AddComponentInstance<IEventHandlerRegistry>(handlerRegistry); // Event Registry var eventRegistry = new DefaultEventRegistry(); eventRegistry.RegisterAssemblies(assemblies); containerManager.AddComponentInstance<IEventRegistry>(eventRegistry); // Event Dispatcher var eventDispatcher = new DefaultEventDispatcher(handlerRegistry); containerManager.AddComponentInstance<IEventDispatcher>(eventDispatcher); }
public void Register(IContainerManager containerManager, CMS.Common.Runtime.ITypeFinder typeFinder) { var assemblies = typeFinder.GetAssemblies() .Where(x => !IsIgnoredAssembly(x)) .ToList(); foreach (var assembly in assemblies) { foreach (var handlerType in assembly.GetTypes()) { if (!handlerType.IsClass || handlerType.IsAbstract || handlerType.IsGenericType) { continue; } foreach (var eventType in GetHandledEventTypes(handlerType)) { Event.Listen(eventType, handlerType); } } } }