我试图将一些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"));
非常感谢帮助。