Merhabalar ,

Bu yazımda ActionFilter sınıfından bahsedeceğim , bu sınıf attribute u bir action ın çalışmadan önce ve sonrasında ki anlarda yapılması istenen işlemleri yönetmemize yarayan bir sınıftır.

Örnek olarak bu Filter ı miras alarak kendi ActionFilterımızı oluşturalım ve kullanalım .

MyActionAttribute adında bir sınıf ekleyip ActionFilterAttribute sınıfından  miras alıyorum. OnActionExecuting , OnActionExecuted metodların override ediyorum

OnActionExecuting : Action Çalışmadan önceki işlemler bu metotta tanımlanmalıdır.

OnActionExecuted : Action Çalıştıktan sonraki işlemler bu metotta tanımlanmalıdır

actin işlemlerinden önce ve sonra olmak üzere bir loglama işlemi yapmak istiyorum.

log işleminde tutulacak bilgiler için bir entity log oluşturdum.

IsBefore ile OnActionExecuting , OnActionExecuted methodunda çağırıp çağırmadığımız bilgisini tuttacağım.

LogYaz methodunu Log sınfı alacak şekilde overload ettim. daha sonrasında kendi yapınıza göre bu metodun içeriğini değiştirebilirsiniz.

MyActionAttribute.cs sınıfımızın son hali :

Örnek Kodda göreceğiniz şekilde actionContext, actionExecutedContext parametrelerindeki verileri okuyarak istediğimiz şekilde bir log verisi toplamış olduk.

Bu attribute ü kullanmak istediğimizde istediğimiz controller ın veya Action ın üzerine yazarak kullanabilirsiniz.

Örnek :

screenshot_13

Şeklinde kullanabiliriz.

Örnek Sonuç :

screenshot_14

screenshot_15

 

 

Print Friendly, PDF & Email
Bu alana reklam verebilirsiniz!