ما الفرق بين AddTransient و AddScoped و AddSingleton في ASP.NET Core؟
مرحباً بالجميع! أنا جديد في ASP.NET Core وأحاول فهم حقن التبعية (Dependency Injection). في ملف Startup.cs أرى غالباً ثلاث دوال: AddTransient و AddScoped و AddSingleton. لقد قرأت التوثيق لكني لم أفهم تماماً متى أستخدم أياً منها.
على سبيل المثال، لدي خدمة بسيطة لتوليد أرقام عشوائية:
```csharp
public interface IRandomService
{
int GetRandomNumber();
}
public class RandomService : IRandomService
{
private readonly int _number;
public RandomService()
{
_number = new Random().Next(1, 1000);
Console.WriteLine($"تم إنشاء مثيل RandomService برقم {_number}");
}
public int GetRandomNumber() => _number;
}
```
أقوم بتسجيله في Startup.cs هكذا:
```csharp
services.AddTransient();
// أو
services.AddScoped();
// أو
services.AddSingleton();
```
عندما أستدعي هذه الخ