DI এর সাথে Custom Service তৈরি করা

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) Dependency Injection (DI) |
322
322

ASP.NET Core-এ Dependency Injection (DI) একটি বিল্ট-ইন ফিচার, যা কোডের রিইউজেবিলিটি এবং টেস্টেবিলিটি নিশ্চিত করতে সাহায্য করে। Custom Service তৈরি এবং DI এর মাধ্যমে তা ব্যবহার করা ASP.NET Core অ্যাপ্লিকেশনে সাধারণ একটি প্রক্রিয়া। এখানে ধাপে ধাপে Custom Service তৈরি এবং তা DI এর মাধ্যমে ব্যবহার করার পদ্ধতি ব্যাখ্যা করা হলো।


Custom Service তৈরি করা

Custom Service হলো এমন একটি ক্লাস, যা নির্দিষ্ট একটি ফিচার বা কার্য সম্পাদনের জন্য ডিজাইন করা হয়।

Custom Service Interface তৈরি

প্রথমে একটি ইন্টারফেস তৈরি করুন, যা Service এর ফাংশনালিটিগুলো ডিফাইন করবে।

public interface ICustomService
{
    string GetMessage();
}

Custom Service Implementation

এরপর ইন্টারফেসটি ইমপ্লিমেন্ট করে একটি ক্লাস তৈরি করুন, যেখানে সুনির্দিষ্ট ফাংশনালিটি প্রদান করা হবে।

public class CustomService : ICustomService
{
    public string GetMessage()
    {
        return "Hello from Custom Service!";
    }
}

Custom Service-কে DI Container-এ রেজিস্টার করা

ASP.NET Core-এ Startup.cs ফাইলের ConfigureServices মেথডে Custom Service রেজিস্টার করতে হবে।

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();
    
    // Custom Service রেজিস্ট্রেশন
    services.AddTransient<ICustomService, CustomService>();
}

লাইফটাইম নির্বাচন

  • Transient: প্রতি রিকোয়েস্টে নতুন ইনস্ট্যান্স তৈরি হয়।

    services.AddTransient<ICustomService, CustomService>();
    
  • Scoped: প্রতি রিকোয়েস্টে একটি ইনস্ট্যান্স তৈরি হয় এবং এটি রিকোয়েস্ট শেষ হওয়া পর্যন্ত থাকে।

    services.AddScoped<ICustomService, CustomService>();
    
  • Singleton: পুরো অ্যাপ্লিকেশন জুড়ে একটি মাত্র ইনস্ট্যান্স ব্যবহার হয়।

    services.AddSingleton<ICustomService, CustomService>();
    

Custom Service ব্যবহার করা

Constructor Injection ব্যবহার

Custom Service-কে একটি Controller-এ ব্যবহার করতে চাইলে Constructor Injection ব্যবহার করতে হবে।

public class HomeController : Controller
{
    private readonly ICustomService _customService;

    public HomeController(ICustomService customService)
    {
        _customService = customService;
    }

    public IActionResult Index()
    {
        var message = _customService.GetMessage();
        ViewData["Message"] = message;
        return View();
    }
}

Custom Service থেকে ডেটা ভিউতে পাঠানো

Controller থেকে ডেটা ভিউতে পাঠানো হয়েছে। এখন এই ডেটা ভিউতে প্রদর্শিত হবে।

<h1>@ViewData["Message"]</h1>

Custom Service টেস্ট করা

Unit Test এর জন্য Mocking

Custom Service এর ফাংশনালিটি টেস্ট করার জন্য Mocking Framework ব্যবহার করা যেতে পারে, যেমন Moq।

[Fact]
public void Test_CustomService()
{
    var mockService = new Mock<ICustomService>();
    mockService.Setup(service => service.GetMessage()).Returns("Test Message");

    var controller = new HomeController(mockService.Object);
    var result = controller.Index() as ViewResult;

    Assert.Equal("Test Message", result.ViewData["Message"]);
}

সারাংশ

Custom Service তৈরি এবং DI এর মাধ্যমে তা ব্যবহার করা ASP.NET Core অ্যাপ্লিকেশনে কোড মেইনটেনেন্স এবং স্কেলেবিলিটির জন্য অত্যন্ত কার্যকর। Custom Service-কে DI Container-এ রেজিস্টার করার পর এটি সহজেই অ্যাপ্লিকেশনের যেকোনো স্থানে ইনজেক্ট করা যায়। এটি অ্যাপ্লিকেশনের মডুলার আর্কিটেকচার নিশ্চিত করে এবং টেস্টেবিলিটি বাড়ায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion