Changes in Ninject 2 powiedzieć, że Ninject obsługuje Common Service Locator, ale w jaki sposób mogę go użyć? Nie znajduję żadnej instrukcji ani próbki.Jak używać wspólnego lokalizatora usług w programie Ninject 2
Odpowiedz
Pobieranie programu Ninject2 zawiera plik CommonServiceLocator.NinjectAdapter.dll
(w folderze "extensions" pliku zip). Dodaj ten plik DLL i Ninject.dll
do swojego projektu.
W ścieżce startowej aplikacji (po skonfigurowaniu jądra Ninject), można użyć następującego kodu:
IKernel ninject = ...;
var locator = new NinjectServiceLocator(ninject);
ServiceLocator.SetLocatorProvider(() => locator);
Zwróć uwagę, że Common Service Locator (CSL) to biblioteka, która stanowi abstrakcję nad kontenerami IoC i zawiera statyczną elewację (implementującą wzór Service Locator). Jest to powszechny interfejs, z którego mogą korzystać programiści w zależności od konkretnej implementacji IoC. CSL jest szczególnie przydatny dla twórców frameworków. Twórcy aplikacji lepiej wykorzystują wzorzec zależny od wtrysku (DI). Gdy DI jest używane poprawnie, nie ma potrzeby korzystania z CSL w aplikacji. Podczas gdy CSL jest bardziej odpowiedni do projektowania ram, nawet tam uważam, że używanie CSL jest wątpliwe. Uważa się, że przez większość czasu korzystanie z takiego wspólnego interfejsu można usunąć poprzez posiadanie odpowiedniego projektu.
Co robi funkcja CommonServiceLocator? – Chev
Mam cię, dziękuję za informację. Zgadzam się z Tobą. – Chev