"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني حل خدمات ASP.NET الأساسية يدويًا في "ConfigureServices"؟

كيف يمكنني حل خدمات ASP.NET الأساسية يدويًا في "ConfigureServices"؟

نشر في 2025-03-22
تصفح:913

How Can I Manually Resolve ASP.NET Core Services in `ConfigureServices`?

يدويًا خدمة ASP.NET الأساسية في تكوينات لا توفر طريقة

تكوينات

في asp.net المستخدم لتكوين حاويات حقن التبعية طريقة لخدمات التحليل المباشر. لتحليل الخدمة يدويًا من هذه الطريقة ، مطلوب طريقة بديلة.

وضع موفر الخدمة

لتحليل الخدمات ، يستخدم ASP.NET Core نمط مزود الخدمة. بعد إنشاء مجموعة الخدمة ، يتم تحويلها إلى مثيل

iserviceProvider ، مما يسمح بتحليل الخدمة.

موفر خدمة الحقن ]] تتمثل إحدى طرق تحليل الخدمة في ضخ

iserviceprovider

في مُنشئ فئة بدء التشغيل . ومع ذلك ، يوفر هذا النهج الوصول فقط إلى الخدمات الضرورية المحدودة التي تم حقنها بواسطة طبقة الاستضافة.

استخدم ApplicationServices

]] في طريقة

، توفر

iApplicationBuilder الخاصية تكوين باطل عام (تطبيق iApplicationBuilder) { var serviceProvider = app.applicationservices ؛ var foOservice = serviceProvider.getService () ؛ }

public void Configure(IApplicationBuilder app)
{
    var serviceProvider = app.ApplicationServices;
    var fooService = serviceProvider.GetService();
}
]

لتحليل خدمة في طريقة تكوينات ، يمكنك إنشاء موفر خدمة وسيطة من مجموعة من الخدمات المدمجة جزئيًا. ومع ذلك ، فإن هذا يشمل الخدمات المسجلة فقط قبل ذلك.

تكوينات الفراغ العام (خدمات iserviceCollection) { Services.addsingleton () ؛ var sp = services.buildServiceProvider () ؛ var foOservice = sp.getService () ؛ }

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton();

    var sp = services.BuildServiceProvider();
    var fooService = sp.GetService();
}
]

لا ينصح عادة بخدمات التحليل اليدوي لأنها تنتهك مبدأ حقن التبعية. بدلاً من ذلك ، استخدم الحقن أو الاستفادة من حقن موفر الخدمة في طريقة تكوين .

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3