Autofac to Common Service Locator (проблема TypedParameter) - PullRequest
3 голосов
/ 14 июня 2011

Как мне изменить из Autofac следующее для использования Common Service Locator (где _context имеет тип IComponentContext):

var query = _context.Resolve<IContentQuery>(TypedParameter.From<IContentManager>(this));

Приведенный выше код взят из Orchard, и я пытаюсь удалить зависимость от Autofac. Обычно я бы попробовал что-то вроде:

var query = ServiceLocator.Current.GetInstance<IContentQuery>();

Однако это возвращает ноль, и я не могу понять, как обращаться с материалом TypedParameter, так как я не понимаю, что он делает.

Я бы очень признателен, если бы кто-то мог помочь. Спасибо

1 Ответ

3 голосов
/ 15 июня 2011

A TypedParameter предоставляет дополнительное значение конструктору разрешаемого компонента.В этом случае базовый ContextQuery примет параметр типа IContentManager с передачей значения this.

Common Service Locator не поддерживает параметризацию, поэтому вам, вероятно, придется использовать определенныйособенности вашего основного контейнера IoC.

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

...