51 lines
2.0 KiB
C#
51 lines
2.0 KiB
C#
using System;
|
|
using Microsoft.AspNet.DependencyInjection;
|
|
|
|
namespace Microsoft.AspNet.Mvc
|
|
{
|
|
public class ReflectedActionInvokerProvider : IActionInvokerProvider
|
|
{
|
|
private readonly IActionResultFactory _actionResultFactory;
|
|
private readonly IServiceProvider _serviceProvider;
|
|
private readonly IControllerFactory _controllerFactory;
|
|
private readonly IActionBindingContextProvider _bindingProvider;
|
|
private readonly INestedProviderManager<FilterProviderContext> _filterProvider;
|
|
|
|
public ReflectedActionInvokerProvider(IActionResultFactory actionResultFactory,
|
|
IControllerFactory controllerFactory,
|
|
IActionBindingContextProvider bindingProvider,
|
|
INestedProviderManager<FilterProviderContext> filterProvider,
|
|
IServiceProvider serviceProvider)
|
|
{
|
|
_actionResultFactory = actionResultFactory;
|
|
_controllerFactory = controllerFactory;
|
|
_bindingProvider = bindingProvider;
|
|
_filterProvider = filterProvider;
|
|
_serviceProvider = serviceProvider;
|
|
}
|
|
|
|
public int Order
|
|
{
|
|
get { return 0; }
|
|
}
|
|
|
|
public void Invoke(ActionInvokerProviderContext context, Action callNext)
|
|
{
|
|
var actionDescriptor = context.ActionContext.ActionDescriptor as ReflectedActionDescriptor;
|
|
|
|
if (actionDescriptor != null)
|
|
{
|
|
context.Result = new ReflectedActionInvoker(
|
|
context.ActionContext,
|
|
actionDescriptor,
|
|
_actionResultFactory,
|
|
_controllerFactory,
|
|
_bindingProvider,
|
|
_filterProvider);
|
|
}
|
|
|
|
callNext();
|
|
}
|
|
}
|
|
}
|