Odpowiedz

26

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.

+0

Co robi funkcja CommonServiceLocator? – Chev

+0

Mam cię, dziękuję za informację. Zgadzam się z Tobą. – Chev