কম্পিউটার টিউটোরিয়াল

C# ASP.NET Core-এ কন্ট্রোলারে সার্ভিস ডিপেন্ডেন্সি ইনজেক্ট করার পদ্ধতি

ASP.NET Core বিল্ট-ইন IoC কন্টেইনার ব্যবহার করে কনস্ট্রাক্টর বা মেথডের মাধ্যমে ডিপেন্ডেন্সি ক্লাসের অবজেক্ট ইনজেক্ট করে। বিল্ট-ইন কন্টেইনার IServiceProvider ইমপ্লিমেন্টেশন দ্বারা প্রতিনিধিত্ব করা হয় যা ডিফল্টভাবে কনস্ট্রাক্টর ইনজেকশন সাপোর্ট করে। IoC কন্টেইনার দ্বারা পরিচালিত টাইপ (ক্লাস) গুলাকে সার্ভিস বলা হয়।

আমাদের অ্যাপ্লিকেশন সার্ভিসগুলো IoC কন্টেইনার দ্বারা স্বয়ংক্রিয়ভাবে ইনজেক্ট করতে হলে, প্রথমে সেগুলো IoC কন্টেইনারের সাথে রেজিস্টার করতে হবে।

উদাহরণ

public interface ILog 
{ 
    void Info(string str); 
}

class MyConsoleLogger : ILog 
{ 
    public void Info(string str) 
    { 
        Console.WriteLine(str); 
    } 
}

ASP.NET Core আমাদের অ্যাপ্লিকেশন সার্ভিসগুলো Startup ক্লাসের ConfigureServices মেথডে IoC কন্টেইনারের সাথে রেজিস্টার করতে দেয়। ConfigureServices মেথডে IServiceCollection টাইপের একটি প্যারামিটার থাকে যা অ্যাপ্লিকেশন সার্ভিস রেজিস্টার করতে ব্যবহৃত হয়।

নিচের মতো ConfigureServices() মেথডে ILog কে IoC কন্টেইনারের সাথে রেজিস্টার করুন:

public class Startup 
{ 
    public void ConfigureServices(IServiceCollection services) 
    { 
        services.AddSingleton(); 
    } 
}

IServiceCollection ইনস্ট্যান্সের Add() মেথড সার্ভিসকে IoC কন্টেইনারের সাথে রেজিস্টার করতে ব্যবহৃত হয়। এখানে ILog কে সার্ভিস টাইপ এবং MyConsoleLogger কে এর ইনস্ট্যান্স হিসেবে নির্দিষ্ট করা হয়েছে। এটি ILog সার্ভিসকে সিঙ্গলটন হিসেবে রেজিস্টার করবে। এখন, IoC কন্টেইনার MyConsoleLogger ক্লাসের একটি সিঙ্গলটন অবজেক্ট তৈরি করবে এবং অ্যাপ্লিকেশনের যেখানেই ILog কনস্ট্রাক্টর বা মেথড প্যারামিটার হিসেবে ব্যবহার করা হবে, সেখানে এটি ইনজেক্ট করবে।

  1. C# ASP.NET WebAPI-তে লগিংয়ের জন্য LOG ফিল্টার কীভাবে তৈরি করবেন?

  2. C# ASP.NET WebAPI-তে কোয়েরি স্ট্রিং প্যারামিটার দিয়ে ভার্সনিং কীভাবে করবেন?

  3. C# ASP.NET WebAPI-তে একশন মেথডের জন্য আলিয়াস নাম কীভাবে দিবেন?

  4. C# ASP.NET WebAPI-তে কন্ট্রোলার একশনের বিভিন্ন রিটার্ন টাইপ কী কী?