Autofac в общий локатор обслуживания (выпуск TypedParameter)

StackOverflow https://stackoverflow.com/questions/6346249

  •  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.

Надеюсь это поможет. Ник

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top