Built-In Filters

Bu makalemde Built-in Filter Attribute leri ele alacağım. ASP.NET Core MVC Filter ile ilgili önceki yazılarımı okumanızı tavsiye ederim.

Framework, alt sınıflar üretip özelleştirebileceğiniz built-in attribute tabanlı filtreler içerir. Örneğin aşağıda Result filter Response a bir header eklemekte.


using Microsoft.AspNetCore.Mvc.Filters;

namespace FiltersSample.Filters
{
public class AddHeaderAttribute : ResultFilterAttribute
{
private readonly string _name;
private readonly string _value;

public AddHeaderAttribute(string name, string value)
{
_name = name;
_value = value;
}
public override void OnResultExecuting(ResultExecutingContext context)
{
context.HttpContext.Response.Headers.Add(
_name, new string[] { _value });
base.OnResultExecuting(context);
}
}
}

Attributeler filtrelere argüman geçirmemizi izin verir. Üstteki örnekte gösterildiği gibi. Artık aşağıdaki gibi bu attribute, controller veya action metodumuza ekleyebilir ve özel name-value anahtarlarımızı HTTP Header a gönderebiliriz.


[AddHeader("Author", "Steve Smith @ardalis")]
public class SampleController : Controller
{
public IActionResult Index()
{
return Content("Examine the headers using developer tools.");
}

[ShortCircuitingResourceFilter]
public IActionResult SomeResource()
{
return Content("Successful access to resource - header should be set.");
}

Uyguladığımız index action nı istek aldığında sonuç aşağıdaki gibi olacaktır. Sağ altta Response Header a dikkat edin.

built in filter attribute

Filtre arayüzlerinin bir çoğu özel implementasyonlar için base sınıf olarak kullanabileceğimiz attributeler sunar.

  • ActionFilterAttribute
  • ExceptionFilterAttribute
  • ResultFilterAttribute
  • FormatFilterAttribute
  • ServiceFilterAttribute
  • TypeFilterAttribute
Reklamlar