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

FindCommandHandlersInAssemblies() public method

public FindCommandHandlersInAssemblies ( IMessage message ) : List
message IMessage
return List
        public virtual List<HandlerInfo> FindCommandHandlersInAssemblies(IMessage message)
        {
            var result = new List<HandlerInfo>();
            var methods = FindMethodsInAssemblyFromTypes(type => ((!type.IsInterface && !type.IsAbstract) &&
                                                           (type.GetInterfaces().SingleOrDefault(
                                                               x => IsCommandHandler(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;
        }