عنوان:

‫IStartupFilter در ASP.NET Core


نویسنده: وحید نصیری
تاریخ: ۱۴۰۳/۱۲/۰۱ ۰۹:۲۵
آدرس: www.dntips.ir
این مقاله رابط IStartupFilter را در ASP.NET Core و موارد استفاده آن را توضیح می‌دهد.

IStartupFilter چیست؟

یک رابط که امکان تغییر خط لوله (pipeline) درخواست برنامه را فراهم می‌کند.
مفید برای:
  • اطمینان از اجرای middleware خاص در ابتدا.
  • اضافه کردن middleware به طور مداوم در برنامه‌های مختلف.
  • ایجاد تنظیمات middleware قابل استفاده مجدد.
  • تغییر ترتیب ثبت middleware.

نحوه عملکرد IStartupFilter
  • ASP.NET Core نمونه‌های ثبت شده IStartupFilter را به ترتیب ثبت، اجرا می‌کند.
  • هر فیلتر می‌تواند middleware را قبل و بعد از خط لوله موجود اضافه کند.

مثال: Middleware زمان‌بندی درخواست
public class RequestTimingStartupFilter : IStartupFilter
{
    public Action<IApplicationBuilder> Configure(Action<IApplicationBuilder> next)
    {
        return builder =>
        {
            builder.Use(async (context, nextMiddleware) =>
            {
                // اضافه کردن هدر زمان‌بندی
                context.Response.OnStarting(() => { /* ... */ });
                await nextMiddleware();
            });
            next(builder);
        };
    }
}

ثبت

builder.Services.AddTransient<IStartupFilter, RequestTimingStartupFilter>();

چه زمانی از IStartupFilter استفاده کنیم؟

  • عمدتاً برای نویسندگان کتابخانه‌ها مفید است.
  • اطمینان حاصل می‌کند که middleware (به عنوان مثال، مدیریت خطای سفارشی) در نقطه خاصی از خط لوله در برنامه‌های مختلف اجرا می‌شود.
  • ترتیب ثبت IStartupFilter برای ترتیب اجرای middleware مهم است.


مشاهده مطلب اصلی