public AttributesHandlerFactory(IServiceProvider serviceProvider, IParametersMatcher parametersMatcher) { _serviceProvider = serviceProvider; _parametersMatcher = parametersMatcher; _descriptors = Assembly.GetEntryAssembly() .GetTypes() .Where(t => t.Name.EndsWith("Controller")) .SelectMany(type => type.GetMethods(BindingFlags.Instance | BindingFlags.Public).Select(method => new { type, method })) .SelectMany(tuple => tuple.method.GetCustomAttributes <HandlerAttribute>().Select(attr => new { tuple.type, tuple.method, attr })) .Select(tuple => HandlerDescriptor.Create(tuple.method, tuple.attr)) .ToList(); }
public Handler(IServiceProvider serviceProvider, IParametersMatcher parametersMatcher, MethodInfo method) { _serviceProvider = serviceProvider; _parametersMatcher = parametersMatcher; _method = method; }