Bus.Dispatch.AssemblyScanner.FindEventHandlersInAssemblies C# (CSharp) Method

FindEventHandlersInAssemblies() public method

public FindEventHandlersInAssemblies ( IMessage message ) : List
message IMessage
return List
        public List<HandlerInfo> FindEventHandlersInAssemblies(IMessage message)
        {
            var result = new List<HandlerInfo>();
            var methods = FindMethodsInAssemblyFromTypes(type => ((!type.IsInterface && !type.IsAbstract) &&
                                                           (type.GetInterfaces().SingleOrDefault(
                                                               x => IsEventHandler(x, message.GetType())) != null)), "Handle", type => new[] { message.GetType() });
            foreach (var methodInfo in methods)
            {
                var declaringType = methodInfo.DeclaringType;
                var staticAttribute = declaringType.GetCustomAttributes(typeof(StaticHandlerAttribute), true).SingleOrDefault();
                result.Add(new HandlerInfo(methodInfo, staticAttribute != null));
            }
            return result;
        }