- برای غیرفعال کردن یک Task در مطلب جاری، باید آنرا از لیست سرویسهای ثبت شدهی سیستم حذف کنید (و یا برای معرفی آن به سیستم باید به سیستم تزریق وابستگیها توسط services.AddHostedService اضافه شود).
public static class ServiceCollectionExtensions
{
public static IServiceCollection Remove<T>(this IServiceCollection services)
{
var serviceDescriptor = services.FirstOrDefault(descriptor => descriptor.ServiceType == typeof(T));
if (serviceDescriptor != null) services.Remove(serviceDescriptor);
return services;
}
}
و یا با توجه به اینکه این وظایف به صورت یک سرویس ثبت میشوند، میتوانید یک سرویس سفارشی فعال یا غیرفعالسازی را تعریف کنید و آنرا به سازندهی این وظایف تزریق و استفاده کنید. برای مثال زمانیکه حلقهی انجام وظایف به به تنظیمات
خاصیت Schedule رسید، متد ScheduledExecuteInScope را اجرا میکند. در این متد فرصت خواهید داشت تا سرویس سفارشی جدید تزریق شده را بررسی کرده و از فعال بودن یا نبودن این وظیفه مطلع شوید (برای مثال این سرویس بر اساس نامی که به آن ارسال میکنید، به بانک اطلاعاتی مراجعه کرده و روشن و یا خاموش بودن آنرا بررسی کند. تنظیم بانک اطلاعاتی آنرا هم واگذار کنید به قسمت مدیریتی برنامه).