AddTransient, AddScoped और AddSingleton के बीच अंतर: कब और क्या उपयोग करें?
सभी को नमस्ते! मैंने हाल ही में ASP.NET Core और अंतर्निहित Dependency Injection (DI) तंत्र सीखना शुरू किया है। मैंने `ConfigureServices` में services को register करना समझ लिया है, लेकिन service lifetime चुनने में भ्रम हो रहा है।
मेरे पास एक सरल उदाहरण है। मान लीजिए मैं एक ऑनलाइन स्टोर ऐप बना रहा हूँ, और मेरे पास `CartService` है जो उपयोगकर्ता की कार्ट को manage करता है, और `LoggerService` जो actions को log करता है।
Startup में मैं उन्हें इस तरह register करता हूँ:
```csharp
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient();
services.AddScoped();
services.AddSingleton();
}
```
मुझे `AddTransient`, `AddScoped` और `AddSingleton` के बीच अंतर पूरी तरह से समझ नहीं आ रहा है। इंटरनेट पर बहुत सारे स्पष्टीकरण हैं, लेकिन वे अक्सर बहुत अमूर्त होते हैं।
मेरे प्रश्न:
1. अगर मैं lifetime चुनने में गलती करूँ तो क्या होगा? उदाहरण के लिए, डेटाबेस के साथ काम करने वाले service को Singleton के रूप में register कर दूँ?
2. किन परिदृश्यों में उपयोग करना चाहिए