3

How do i modify the following from Autofac to use the Common Service Locator (where _context is of type IComponentContext):

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

The code above is taken from Orchard and and i'm trying to remove the dependency on Autofac. Usually i'd try something like:

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

However this returns null and i can't see how to handle the TypedParameter stuff as i don't understand what it's doing.

I'd really appreciate it if someone could help. Thanks

4

1 に答える 1

3

ATypedParameterは、解決されるコンポーネントのコンストラクターに追加の値を提供します。この場合、基礎となるものは、渡される値を持つContextQueryタイプのパラメーターを受け入れます。IContentManagerthis

Common Service Locator はパラメーター化をサポートしていないため、おそらく、基盤となる IoC コンテナーの特定の機能を使用する必要があります。

お役に立てれば。ニック

于 2011-06-15T11:30:27.940 に答える