| File: Infrastructure\ControllerActionInvokerCacheEntry.cs | Web Access |
| Project: src\aspnetcore\src\Mvc\Mvc.Core\src\Microsoft.AspNetCore.Mvc.Core.csproj (Microsoft.AspNetCore.Mvc.Core) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.Extensions.Internal; namespace Microsoft.AspNetCore.Mvc.Infrastructure; internal sealed class ControllerActionInvokerCacheEntry { internal ControllerActionInvokerCacheEntry( FilterItem[] cachedFilters, Func<ControllerContext, object> controllerFactory, Func<ControllerContext, object, ValueTask>? controllerReleaser, ControllerBinderDelegate? controllerBinderDelegate, ObjectMethodExecutor objectMethodExecutor, ActionMethodExecutor actionMethodExecutor, ActionMethodExecutor innerActionMethodExecutor) { ControllerFactory = controllerFactory; ControllerReleaser = controllerReleaser; ControllerBinderDelegate = controllerBinderDelegate; CachedFilters = cachedFilters; ObjectMethodExecutor = objectMethodExecutor; ActionMethodExecutor = actionMethodExecutor; InnerActionMethodExecutor = innerActionMethodExecutor; } public FilterItem[] CachedFilters { get; } public Func<ControllerContext, object> ControllerFactory { get; } public Func<ControllerContext, object, ValueTask>? ControllerReleaser { get; } public ControllerBinderDelegate? ControllerBinderDelegate { get; } internal ObjectMethodExecutor ObjectMethodExecutor { get; } // This includes the execution of the filter delegate (if there's a filter) internal ActionMethodExecutor ActionMethodExecutor { get; } // This is called inside of the filter delegate internal ActionMethodExecutor InnerActionMethodExecutor { get; } }