在C#中,過濾器(Filter)通常用于ASP.NET Core MVC應(yīng)用程序中,以便在請求處理管道中執(zhí)行特定操作。要配置過濾器,請按照以下步驟操作:
IActionFilter
接口:using Microsoft.AspNetCore.Mvc.Filters;
public class CustomActionFilter : IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context)
{
// 在操作方法執(zhí)行之前執(zhí)行的代碼
}
public void OnActionExecuted(ActionExecutedContext context)
{
// 在操作方法執(zhí)行之后執(zhí)行的代碼
}
}
Startup
類的ConfigureServices
方法中完成:using Microsoft.Extensions.DependencyInjection;
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews(options =>
{
options.Filters.Add(new CustomActionFilter());
});
}
這將為所有控制器和操作方法應(yīng)用自定義操作過濾器。
[CustomActionFilter]
屬性即可:using Microsoft.AspNetCore.Mvc;
[CustomActionFilter]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
這樣,自定義操作過濾器將僅應(yīng)用于HomeController
控制器及其操作方法。
注意:在上述示例中,我們使用了操作過濾器(IActionFilter
)。類似地,你可以創(chuàng)建并配置其他類型的過濾器,如異常過濾器(IExceptionFilter
)、授權(quán)過濾器(IAuthorizationFilter
)等。只需實現(xiàn)相應(yīng)的接口并在ConfigureServices
方法中將其添加到過濾器集合即可。