در برنامهنویسی ASP.NET Core، تنظیم سرویسها و کتابخانهها خیلی مهم است. این مقاله به شما یاد میدهد که چطور میتوانید با استفاده از دو ابزار به نامهای دیلیگیت و اکشن در زبان #C، تنظیمات برنامهتان را به شکل ساده و موثر تغییر دهید.
مفهوم دیلیگیت و اکشن در #C
دیلیگیتها مثل یک اشارهگر به توابع دیگر عمل میکنند. اکشنها یک نوع خاص از دیلیگیتها هستند که برای توابعی استفاده میشوند که چیزی برنمیگردانند (void) و میتوانند ورودیهای مختلف داشته باشند.
نحوه کار با دیلیگیتها و اکشنها در ASP.NET Core
در ASP.NET Core، استفاده از اکشنها و دیلیگیتها به شما اجازه میدهد توابع خاصی را به توابع دیگر بفرستید، مثل یک پارامتر. این کار برای تنظیم سرویسها و کتابخانههایی که در برنامهتان استفاده میکنید خیلی مفید است. به این صورت، شما میتوانید رفتار یا تنظیمات این سرویسها را تغییر دهید بدون اینکه نیاز باشد کد زیادی بنویسید یا ساختار اصلی برنامهتان را تغییر دهید. این روش باعث میشود کار با برنامههای پیچیده سادهتر و منعطفتر شود.
مثال عملی
فرض کنید یک کتابخانه برای ارسال پیامها دارید و میخواهید تنظیمات آن را در Startup.cs پیکربندی کنید:
ایجاد کلاس تنظیمات:
public class MessageServiceOptions
{
public string Endpoint { get; set; }
public string ApiKey { get; set; }
}
نوشتن تابع Extension:
public static class MessageServiceExtensions
{
public static IServiceCollection AddMessageService(this IServiceCollection services,
Action<MessageServiceOptions> setupAction)
{
services.Configure(setupAction); //تنظیمات را به سرویس ارسال می کنید
services.AddTransient<MessageService>();
return services;
}
}
این کد یک (extension method) است که به شما اجازه میدهد سرویس MessageService را به برنامهتان اضافه کنید.
تابع AddMessageService یک روش جدید برای اضافه کردن سرویس به لیست سرویسهای برنامهتان فراهم میکند.
پارامتر setupAction: این پارامتر یک اکشن است که تنظیمات مورد نیاز برای سرویس MessageService
را مشخص میکند. به این صورت شما میتوانید وقتی از این تابع استفاده میکنید، تنظیمات خاصی را برای سرویس پیامرسانی تعیین کنید.
services.Configure(setupAction): این خط تنظیماتی که از طریق setupAction فراهم شدهاند را به سیستم تنظیمات برنامه اضافه میکند. که باید توسط خود شما در کلاس MessageService
نوشته شود.
services.AddTransient<MessageService>(); این خط سرویس MessageService
را به عنوان یک سرویس به مجموعه سرویسها اضافه میکند. این بدان معناست که هر بار که MessageService درخواست شود، یک نمونه جدید از آن ایجاد میشود.
بازگشت services: در نهایت، تابع IServiceCollection را برمیگرداند، که به شما اجازه میدهد توابع افزودنی بیشتری را به آن زنجیره اضافه کنید.
این روش، استفاده از Dependency Injection را در ASP.NET Core سادهتر میکند و به شما اجازه میدهد تا سرویسهای خود را به راحتی تنظیم و مدیریت کنید.
پیکربندی در Startup.cs یا Program.cs:
services.AddMessageService(options =>
{
options.Endpoint = "http://example.com/api";
options.ApiKey = "secret-key";
});
با استفاده از این روش، شما میتوانید تنظیمات کتابخانهها و سرویسهای خود را به روشی مرکزی و قابل خواندن مدیریت کنید، در حالی که از مزایای Dependency Injection و انعطافپذیری بالا در .NET Core بهرهمند میشوید.
در فصل اول دوره ستارگان سی شارپ مبحث دیلیگیت ها را به صورت کامل آموزش داده ایم.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید