Αρχικά, εγκαταστήστε το πλαίσιο Ninject με την ακόλουθη εντολή Nuget:
Δημιουργήστε μια διεπαφή:
Στη συνέχεια, εφαρμόστε αυτήν τη διεπαφή:
Δημιουργούμε ένα φάκελο που ονομάζεται Υποδομή στο πλαίσιο του έργου WebUI, προσθέτουμε μια εργοστασιακή κλάση που ονομάζεται NinjectControllerFactory σε αυτό, ο κώδικας έχει ως εξής:
ninjectKernel.Get(controllerType) στον παραπάνω κώδικα μπορεί να λάβει μια παρουσία ελεγκτή. Εάν η χειροκίνητη δημιουργία της κλάσης Controller είναι μια πολύ περίπλοκη διαδικασία, δεν γνωρίζουμε αν η κλάση Controller έχει έναν κατασκευαστή με παραμέτρους ή τι είδους όρισμα είναι ο κατασκευαστής. Για να χρησιμοποιήσετε το Ninject, χρειάζεται μόνο να χρησιμοποιήσετε μία από τις παραπάνω μεθόδους Get και το Ninject θα χειριστεί αυτόματα όλες τις εξαρτήσεις εσωτερικά και θα δημιουργήσει έξυπνα τα αντικείμενα που χρειαζόμαστε.
Μόλις δημιουργηθεί η κλάση Controller Factory, πρέπει να πούμε στο MVC να χρησιμοποιήσει την κλάση NinjectControllerFactory για να δημιουργήσει το αντικείμενο Controller, για να γίνει αυτό, πρέπει να προσθέσουμε τον ακόλουθο κώδικα στη μέθοδο Application_Start του αρχείου Global.asax:
Δημιουργούμε μια νέα κλάση που ονομάζεται ControllerBase στο φάκελο του ελεγκτή και ο κώδικας έχει ως εξής:
Στη συνέχεια, τροποποιούμε τον ελεγκτή για να ενσωματώσουμε την κλάση ControllerBase, εντάξει, έγινε!
|