تكرار السؤال: …
الإجابة المختصرة
عند الحاجة لميزات متقدمة غير مدعومة أصلياً مثل Property Injection، والـ Interception للبرمجة الموجهة للجوانب (AOP)، والنطاقات المخصصة المعقدة.
الشرح
صُممت حاوية .NET الافتراضية (Microsoft.Extensions.DependencyInjection) لتكون خفيفة وسريعة وتغطي 95% من الاحتياجات الشائعة. إذا كان مشروعك يتطلب حقن الخصائص تلقائياً، أو اعتراض الاستدعاءات ديناميكياً لتطبيق الكاش والتسجيل (AOP Interception)، أو تنظيم الخدمات بنظام Autofac Modules، يمكنك استبدال موفر الخدمات بسهولة عبر builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()).
مثال بالكود
// دمج Autofac في Host
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
builder.Host.ConfigureContainer<ContainerBuilder>(container => {
container.RegisterModule(new ApplicationModule());
});أخطاء شائعة
- الانتقال لحاوية خارجية معقدة لمجرد التعود عليها في مشاريع سابقة دون وجود متطلب حقيقي يبرر التكلفة الإضافية.