Autofac в общий локатор обслуживания (выпуск TypedParameter)
-
27-10-2019 - |
Вопрос
Как изменить следующее из Autofac, чтобы использовать общий локатор службы (где _context имеет тип IcomponentContext):
var query = _context.Resolve<IContentQuery>(TypedParameter.From<IContentManager>(this));
Приведенный выше код взят из сада, и я пытаюсь убрать зависимость от Autofac. Обычно я пробовал что -то вроде:
var query = ServiceLocator.Current.GetInstance<IContentQuery>();
Однако это возвращает NULL, и я не вижу, как справиться с материалом TypedParameter, поскольку я не понимаю, что он делает.
Я бы очень признателен, если бы кто -то мог помочь. Спасибо
Решение
А TypedParameter
обеспечивает дополнительное значение для конструктора разрешенного компонента. В этом случае основной ContextQuery
Примет параметр типа IContentManager
со значением this
пройден.
Общий локатор обслуживания не поддерживает параметризацию, поэтому вам, вероятно, потребуется использовать конкретные функции вашего базового контейнера IOC.
Надеюсь это поможет. Ник