Apl .NET Core MVC mengalami ralat semasa cuba menyuntik kebergantungan repositori ke dalam pengawal. Mesej ralat adalah seperti berikut:
<code>InvalidOperationException: Unable to resolve service for type 'WebApplication1.Data.BloggerRepository' while attempting to activate 'WebApplication1.Controllers.BlogController'.</code>
Ralat ini menunjukkan bahawa aplikasi tidak boleh mencipta contoh kelas BloggerRepository
untuk dihantar kepada pembina BlogController
. Walaupun BloggerRepository
didaftarkan dalam kelas permulaan:
<code class="language-csharp">services.AddScoped<IBloggerRepository, BloggerRepository>();</code>
Masalahnya ialah kelas pengawal meminta secara langsung kelas BloggerRepository
konkrit. Walau bagaimanapun, bekas suntikan kebergantungan hanya tahu cara membuat contoh antara muka IBloggerRepository
. Untuk menyelesaikan ralat ini, pengawal harus dilaraskan untuk menerima antara muka:
<code class="language-csharp">public BlogController(IBloggerRepository repository) { _repository = repository; }</code>
Untuk pakej NuGet luaran, pastikan anda menyemak dokumentasi mereka kerana ia mungkin mempunyai keperluan pendaftaran khusus. Contohnya, untuk menyelesaikan mesej ralat tentang IHttpContextAccessor
:
<code>Unable to resolve service for type 'Microsoft.AspNetCore.Http.IHttpContextAccessor' ...</code>
Penyelesaian adalah dengan menggunakan kaedah sambungan tersuai:
<code class="language-csharp">services.AddHttpContextAccessor();</code>
Atas ialah kandungan terperinci Mengapa Aplikasi MVC Teras .NET Saya Gagal Menyuntik Ketergantungan Repositori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!