Я новичок в Asp Core, и я попытался реализовать IActionFilter
, который расширяет тип Enum
public class IndexFilter<T> : IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context)
{
// for example T.GetType.GetProperties
}
}
И в контроллере
public class CategoryController : Controller
{
[Route("")]
[HttpGet]
[ServiceFilter( typeof( IndexFilter<Category> ))]
public async Task<IActionResult> Index()
{
// Code
}
....
}
Я дал емувыстрелил, и я наткнулся на Исключение
An unhandled exception has occurred while executing the request.
System.InvalidOperationException: No service for type 'AuthWebApi.Filters.IndexFilter`1[AuthWebApi.Models.Entities.Category]' has been registered.
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
Я попытался изменить Startup.cs на:
services.AddScoped<IndexFilter<CategoryParent>>();
services.AddScoped<IndexFilter<Object>>();
services.AddScoped<IndexFilter<>>();
и ничего не получалось, если я не установил IndexFilter в соответствие с контроллером:
services.AddScoped<IndexFilter<Category>>();
Что делает класс Enumerable действует как обычный класс.