Я пытаюсь изменить свой код для использования Common Service Locator . У меня есть общая библиотека, которая используется некоторыми другими компонентами.
Что я не понимаю, так это то, что эти компоненты должны вызывать ServiceLocator.Current и разрешать их типы? В таком случае, как я могу убедиться, что ServiceLocator.Current действительно установлен? Должен ли я создать свой собственный MyServiceLocator и добавить статический конструктор? (Это, кажется, лишает смысла стандартизированную абстракцию)
Или в моей общей библиотеке должен быть класс, который предоставляет все разрешимые типы в качестве открытых свойств, тем самым сохраняя ServiceLocator полностью внутренним по отношению к общей библиотеке? (что означало бы наличие абстракции поверх абстракции поверх абстракции)?
Дело в том, что Компоненты не создаются через DI и должны вызывать Контейнер, чтобы получить все, что им нужно.