转换Ninject WhenInjectedInto绑定到Autofac

时间:2017-06-01 14:09:37

标签: c# autofac

我试图将一些Ninject绑定转换为Autofac,但无法使其工作。

Theese是ninject绑定:

        Bind<SearchEngineSettings>().ToSelf().WhenInjectedInto<SearchEngineProvider<KreditorSearchEngineItem>>()
            .WithPropertyValue("Path", Path.Combine(_settings.LuceneRoot, @"Kreditor"));

        Bind<SearchEngineSettings>().ToSelf().WhenInjectedInto<SearchEngineProvider<MedlemSearchEngineItem>>()
            .WithPropertyValue("Path", Path.Combine(_settings.LuceneRoot, @"Medlem"));

        Bind<SearchEngineSettings>().ToSelf().WhenInjectedInto<SearchEngineProvider<LejerSearchEngineItem>>()
            .WithPropertyValue("Path", Path.Combine(_settings.LuceneRoot, @"Lejer"));

        Bind<SearchEngineSettings>().ToSelf().WhenInjectedInto<SearchEngineProvider<InteressentSearchEngineItem>>()
            .WithPropertyValue("Path", Path.Combine(_settings.LuceneRoot, @"Interessent"));

        Bind<SearchEngineSettings>().ToSelf().WhenInjectedInto<SearchEngineProvider<LejemaalSearchEngineItem>>()
           .WithPropertyValue("Path", Path.Combine(_settings.LuceneRoot, @"Lejemaal"));

这是我尝试过的,但是不起作用(其中1个,原理相同):

        builder.Register(c =>
        {
            var settings = c.Resolve<Shared.SharedSettings.Settings>();
            return new SearchEngineSettings() { Path = Path.Combine(settings.LuceneRoot, @"Kreditor") };
        }).Named<SearchEngineSettings>("searchKreditor");
        builder.RegisterType<SearchEngineProvider<KreditorSearchEngineItem>>().WithParameter(ResolvedParameter.ForNamed<SearchEngineSettings>("searchKreditor"));

非常感谢帮助。

0 个答案:

没有答案