static INHContributor GetEventListenerContributor(IEnumerable <Type> exportedtypes) { var contributor = new EventListenerContributor(); foreach (var type in exportedtypes) { var eventListenerAttributes = type.GetCustomAttributes(typeof(EventListenerAttribute), false); if (eventListenerAttributes.Length == 1) { var attribute = (EventListenerAttribute)eventListenerAttributes[0]; var config = new EventListenerConfig(type) { ReplaceExisting = attribute.ReplaceExisting, SkipEvent = attribute.SkipEvent, Singleton = attribute.Singleton }; contributor.Add(config); } } return(contributor); }
static INHContributor GetEventListenerContributor(IEnumerable<Type> exportedtypes) { var contributor = new EventListenerContributor(); foreach (var type in exportedtypes) { var eventListenerAttributes = type.GetCustomAttributes(typeof(EventListenerAttribute), false); if (eventListenerAttributes.Length == 1) { var attribute = (EventListenerAttribute)eventListenerAttributes[0]; var config = new EventListenerConfig(type) { ReplaceExisting = attribute.ReplaceExisting, SkipEvent = attribute.SkipEvent, Singleton = attribute.Singleton }; contributor.Add(config); } } return contributor; }
private static void RegisterEventListeners(IEnumerable<Type> types) { var contributor = new EventListenerContributor(); foreach (var type in types) { var eventListenerAttributes = type.GetCustomAttributes(typeof(EventListenerAttribute), false); if (eventListenerAttributes.Length == 1) { var attribute = (EventListenerAttribute) eventListenerAttributes[0]; var config = new EventListenerConfig(type) { ReplaceExisting = attribute.ReplaceExisting, Ignore=attribute.Ignore, SkipEvent=attribute.SkipEvent, Singleton = attribute.Singleton, Include = attribute.Include, Exclude = attribute.Exclude }; contributor.Add(config); } } if (EventListenerComponentRegistrationHook != null) { EventListenerComponentRegistrationHook(contributor); } var addEventListenerAttributes = new List<EventListenerAssemblyAttribute>(); var ignoreEventListenerAttributes = new List<EventListenerAssemblyAttribute>(); foreach (var assembly in registeredAssemblies) { addEventListenerAttributes.AddRange( (AddEventListenerAttribute[]) assembly.GetCustomAttributes(typeof (AddEventListenerAttribute), false)); ignoreEventListenerAttributes.AddRange((IgnoreEventListenerAttribute[]) assembly.GetCustomAttributes(typeof(IgnoreEventListenerAttribute), false)); } ProcessEventListenerAssemblyAttributes(contributor, ignoreEventListenerAttributes); ProcessEventListenerAssemblyAttributes(contributor, addEventListenerAttributes); if (EventListenerFacilityConfigurationHook != null) { EventListenerFacilityConfigurationHook(contributor); } AddContributor(contributor); }
private static void ConfigureEventListener(EventListenerAssemblyAttribute attribute, EventListenerConfig config) { if (attribute is IgnoreEventListenerAttribute) config.Ignore = true; else { config.Ignore = false; var addAttribute = (AddEventListenerAttribute) attribute; config.Exclude = addAttribute.Exclude; config.Include = addAttribute.Include; config.SkipEvent = addAttribute.ExcludeEvent; if (addAttribute.IncludeEvent != null) { Type[] eventtypes = EventListenerContributor.GetEventTypes(config.ListenerType); config.SkipEvent = Array.FindAll(eventtypes, type => Array.IndexOf(addAttribute.IncludeEvent, type) < 0); } config.Singleton = addAttribute.Singleton; config.ReplaceExisting = addAttribute.ReplaceExisting; } }