ActionFilterAttribute
最近在工作時看到看到一個寫Log的寫法 利用ActionFilterAttribute Filter擴充
ActionFilterAttribute 是 ASP.NET Core 中的一種篩選器,用於在執行控制器動作(Action)前後執行某些程式碼。它是用於對控制器動作進行前置和後置處理的一種機制,例如日誌記錄、授權檢查、輸入驗證等。
在 ASP.NET Core 中,ActionFilterAttribute 是一個抽象基類,你可以通過繼承它來創建自定義的動作篩選器。它包含了兩個主要的方法:
OnActionExecuting:在執行控制器動作之前執行的程式碼應該放在這個方法中。OnActionExecuted:在執行控制器動作之後執行的程式碼應該放在這個方法中。
你可以通過覆寫這兩個方法來實現你自己的前置和後置處理邏輯。
下面是一個簡單的範例,展示如何創建一個自定義的 AutoLogFilterAttribute:
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.Extensions.Logging;
public class AutoLogFilterAttribute : ActionFilterAttribute
{
protected readonly ILogger<AutoLogFilterAttribute > _logger;
public AutoLogFilterAttribute (ILogger<AuditLogFilterMonoAttribute> logger){
_logger = logger;
}
//執行前
public override void OnActionExecuting(ActionExecutingContext context)
{
//todo
}
//執行後
public override void OnResultExecuted(ResultExecutedContext context)
{
//todo
}
}
在這個範例中,我們創建了一個名為 AutoLogFilterAttribute 的自定義動作篩選器,並覆寫了 OnActionExecuting 和 OnActionExecuted 方法來記錄執行控制器動作的相關信息。
留言
張貼留言