Rumah >pembangunan bahagian belakang >C++ >Ninject dan DbContext: Memastikan Pelupusan yang Betul dan Mengoptimumkan Penciptaan Contoh?

Ninject dan DbContext: Memastikan Pelupusan yang Betul dan Mengoptimumkan Penciptaan Contoh?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-26 21:36:09978semak imbas

Ninject and DbContext: Ensuring Proper Disposal and Optimizing Instance Creation?

Apa yang Perlu Diingati Apabila Menggunakan Ninject

Dengan langkah-langkah terbaru yang diambil untuk memasukkan Ninject ke dalam aplikasi MVC anda dan memperkenalkan DbContext ke dalam pembina pengawal anda, soalan tertentu secara semula jadi timbul:

Adakah Ninject menjamin pembersihan dan pelupusan saya tepat pada masanya Contoh DbContext?

Seperti yang digariskan dalam respons ini:

Setiap dokumentasi CLR, pencipta objek Pakai bertanggungjawab untuk memanggil Buang, yang dalam kes ini ialah Ninject. Oleh itu, panggilan eksplisit kepada Buang adalah tidak digalakkan.

Ninject melupuskan objek Pakai dalam mana-mana skop selain InTransientScope() sebaik sahaja GC mengumpul objek skop yang diikat dengannya. Oleh itu, semua objek Boleh guna hendaklah diikat menggunakan skop yang bukan InTransientScope().

Adakah ia boleh dilakukan untuk menghapuskan keperluan untuk memasukkan argumen DbContext dalam setiap pengawal?

Elakkan menggunakan kelas asas yang dikongsi untuk pengawal MVC sama sekali. Warisan kelas memupuk gandingan yang ketat dan menghalang kebolehselenggaraan. Selain itu, ia cenderung untuk mencipta "objek tuhan" yang memerlukan kebergantungan selanjutnya untuk setiap pengawal.

Sebagai alternatif, pertimbangkan untuk menggunakan penapis berdaftar global untuk menangani kebimbangan silang. Anda boleh mereka bentuk penapis khusus untuk komponen logik yang berbeza, mematuhi Prinsip Tanggungjawab Tunggal, yang akan dilanggar oleh kelas asas yang dikongsi. Dengan mendaftarkannya secara global, anda boleh menggunakan suntikan pembina dan juga mencipta atribut (tanpa gelagat) untuk aplikasi bersyarat pada tahap pengawal dan/atau tindakan.

Bagaimanakah saya boleh mengoptimumkan penciptaan tika DbContext?

Rujuk soalan berikut untuk mendapatkan cerapan: [Satu DbContext setiap permintaan web... kenapa?](https://stackoverflow.com/questions/9155198/one-dbcontext-per-web-request-why)

Atas ialah kandungan terperinci Ninject dan DbContext: Memastikan Pelupusan yang Betul dan Mengoptimumkan Penciptaan Contoh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn