Suntikan Ketergantungan Teras ASP.NET: Menyelesaikan Kejadian Secara Manual dalam ConfigureServices()
Menguasai resolusi contoh manual dalam sistem suntikan pergantungan ASP.NET Core MVC, khususnya dalam kaedah ConfigureServices()
, menyediakan kawalan terperinci ke atas pengurusan perkhidmatan. Walaupun IServiceCollection
memudahkan pendaftaran perkhidmatan (mis., menggunakan AddTransient
), ia tidak menyokong peleraian contoh secara langsung. Artikel ini meneroka teknik untuk menyelesaikan kejadian tanpa bergantung pada suntikan pembina.
Penyelesaian langsung dalam ConfigureServices()
tidak mudah. IServiceCollection
menawarkan kaedah BuildServiceProvider()
untuk mencipta IServiceProvider
sementara. Ini membenarkan akses kepada perkhidmatan yang didaftarkan sebelum panggilan BuildServiceProvider()
, tetapi tidak kepada perkhidmatan yang didaftarkan kemudiannya. Had ini penting untuk difahami.
Alternatif, mencerminkan kefungsian corak pilihan, melibatkan pengikatan nilai konfigurasi terus kepada tika. Ini boleh dicapai menggunakan kaedah Bind()
pada bahagian IConfiguration
anda. Contohnya, anda boleh mengikat nilai daripada IConfiguration
kepada contoh MyOptions
.
Adalah penting untuk menekankan bahawa penyelesaian perkhidmatan dalam ConfigureServices()
secara amnya membentuk anti-corak yang sering dirujuk sebagai corak "Service Locator". Amalan ini secara amnya tidak digalakkan. Walau bagaimanapun, senario tertentu, terutamanya dalam rangka kerja atau komponen infrastruktur, mungkin memerlukan pendekatan ini. Pertimbangan yang teliti harus diberikan sebelum menggunakan kaedah ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyelesaikan Kejadian Secara Manual dalam Kaedah `ConfigureServices()` ASP.NET Core?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!