Lebih
Bagaimana cara membuat injeksi ketergantungan untuk ASP.NET MVC 5?
Membuat Dependency Injection dengan ASP.NET Core cukup mudah. Dokumentasinya menjelaskannya dengan sangat baik di sini dan orang ini memiliki [killer video][2] untuk menjelaskannya.
Namun, saya ingin melakukan hal yang sama dengan proyek ASP.NET MVC 5 saya. Bagaimana cara menangani dependency injection dengan ASP.MVC 5?
Juga, apakah Dependency injection hanya terbatas pada controllers saja atau dapat bekerja dengan kelas apapun?
36
3
Di ASP.Net MVC Anda dapat menggunakan .Net Core DI dari NuGet daripada salah satu alternatif pihak ketiga:-
Untuk kelas MVC Start/Configuration: -
Proyek saya menggunakan Identity User dan saya telah mengganti konfigurasi start-up OWIN untuk mengikuti pendekatan berbasis layanan. Kelas Pengguna Identitas default menggunakan metode pabrik statis untuk membuat instance. Saya telah memindahkan kode tersebut ke dalam konstruktor dan mengandalkan DI untuk menyediakan injeksi yang sesuai. Hal ini masih dalam proses, tetapi di sinilah saya berada: -
Kelas Account Controller memiliki konstruktor tunggal: -
Saya sarankan Anda menggunakan Autofac, ada fwk lain seperti unity, ninject, autofac benchmarks memiliki kinerja yang sangat baik.
http://www.palmmedia.de/blog/2011/8/30/ioc-container-benchmark-performance-comparison
Berikut adalah integrasi dengan MVC (dan bekerja dengan semua kelas)
http://docs.autofac.org/en/latest/integration/mvc.html
Cara paling sederhana untuk mengimplementasikan Dependency Injection di ASP.NET MVC 5 adalah dengan menggunakan tool yang dikembangkan oleh Microsoft sendiri, yang disebut
Unity
.Anda dapat menemukan banyak sumber di internet tentang hal ini, dan Anda dapat mulai dengan membaca dokumentasi resmi yang tersedia di sini: Panduan Pengembang untuk Injeksi Ketergantungan Menggunakan Unity
Ini dapat bekerja dengan kelas apapun, dalam proyek apapun, selama Anda mendaftarkan Interface yang terkait dengan Implementasi (jika Anda ingin mengambil keuntungan dari IoC pattern), yang harus Anda lakukan adalah menambahkan instantiasi Interface di konstruktor Anda.