56 lines
2.3 KiB
C#
56 lines
2.3 KiB
C#
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System;
|
|
using Microsoft.AspNet.Mvc.ModelBinding;
|
|
using Microsoft.Framework.DependencyInjection;
|
|
|
|
namespace Microsoft.AspNet.Mvc
|
|
{
|
|
public class ReflectedActionInvokerProvider : IActionInvokerProvider
|
|
{
|
|
private readonly IControllerFactory _controllerFactory;
|
|
private readonly IActionBindingContextProvider _bindingProvider;
|
|
private readonly IInputFormattersProvider _inputFormattersProvider;
|
|
private readonly INestedProviderManager<FilterProviderContext> _filterProvider;
|
|
private readonly IBodyModelValidator _modelValidator;
|
|
|
|
public ReflectedActionInvokerProvider(IControllerFactory controllerFactory,
|
|
IActionBindingContextProvider bindingProvider,
|
|
IInputFormattersProvider inputFormattersProvider,
|
|
INestedProviderManager<FilterProviderContext> filterProvider,
|
|
IBodyModelValidator modelValidator)
|
|
{
|
|
_controllerFactory = controllerFactory;
|
|
_bindingProvider = bindingProvider;
|
|
_inputFormattersProvider = inputFormattersProvider;
|
|
_filterProvider = filterProvider;
|
|
_modelValidator = modelValidator;
|
|
}
|
|
|
|
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,
|
|
_bindingProvider,
|
|
_filterProvider,
|
|
_controllerFactory,
|
|
actionDescriptor,
|
|
_inputFormattersProvider,
|
|
_modelValidator);
|
|
}
|
|
|
|
callNext();
|
|
}
|
|
}
|
|
}
|