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

C# ASP.NET Core-এ AddSingleton vs AddScoped vs AddTransient পার্থক্য

ASP.NET Core-এ Startup.cs-এ ডিপেন্ডেন্সি রেজিস্টার করার তিনটি উপায়: AddSingleton, AddScoped, AddTransient।

AddSingleton

  • পুরো অ্যাপ্লিকেশনে এবং প্রতিটি রিকোয়েস্টের জন্য একটি মাত্র ইনস্ট্যান্স তৈরি হয়।
  • স্ট্যাটিক অবজেক্টের মতো আচরণ করে।
  • প্রথম রিকোয়েস্টে ইনস্ট্যান্স তৈরি হয় এবং সেটি সমস্ত পরবর্তী রিকোয়েস্টে শেয়ার করা হয়।
services.AddSingleton<ILog, Logger>();

AddScoped

  • প্রতি HTTP রিকোয়েস্টের জন্য একটি ইনস্ট্যান্স তৈরি হয়।
  • নতুন রিকোয়েস্ট এলে নতুন ইনস্ট্যান্স তৈরি হয়।
  • একই রিকোয়েস্টের মধ্যে সব জায়গায় একই ইনস্ট্যান্স শেয়ার হয়।
services.AddScoped<ILog, Logger>();

AddTransient

  • প্রতিবার ইনজেকশন রিকোয়েস্টে নতুন ইনস্ট্যান্স তৈরি হয়।
  • প্রতি সার্ভিস/কন্ট্রোলার/রিকোয়েস্ট/ইউজারের জন্য আলাদা ইনস্ট্যান্স।
services.AddTransient<ILog, Logger>();

তুলনামূলক টেবিল

প্যারামিটারAddSingletonAddScopedAddTransient
ইনস্ট্যান্সপ্রতিটি রিকোয়েস্ট/ইউজারের জন্য একইপ্রতি রিকোয়েস্ট একপ্রতিবার আলাদা
ডিসপোজঅ্যাপ শাটডাউন টাইমরিকোয়েস্ট শেষেরিকোয়েস্ট শেষে
ব্যবহারসিঙ্গলটন ইমপ্লিমেন্টেশন দরকার হলেইউজার-প্রতি ভিন্ন বিহেভিয়ারলাইটওয়েট, স্টেটলেস সার্ভিস

সারসংক্ষেপ: স্টেটফুল সার্ভিসের জন্য Scoped, স্টেটলেস/লাইটওয়েটের জন্য Transient, শেয়ার্ড স্টেট/ক্যাশের জন্য Singleton।

  1. C# ASP.NET WebAPI-এ Authorize অ্যাট্রিবিউটের ব্যবহার

  2. C# ASP.NET MVC-এ ChildActionOnly অ্যাট্রিবিউটের ব্যবহার

  3. C# ASP.NET MVC-এ NonActionAttribute-এর তাৎপর্য

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