Avatar ·

ما الفرق بين 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(); ``` عندما أستدعي هذه الخ