【发布时间】:2011-01-31 21:42:35
【问题描述】:
再一次,我想我可能在这里遗漏了明显的东西。我希望按照约定进行自动绑定。我一直在研究 Ninject.extension.conventions 项目和程序集扫描器。
我有很多如下所示的行,我想自动绑定:
Bind<ICommandHandler<MyCommand>>().To<MyCommandHandler>();
Bind<ICommandHandler<MyOtherCommand>>().To<MyOtherCommandHander>();
我尝试了以下几种变体:
Kernal.Scan(x => {
x.FromAssemblyContaining<MyCommand>();
x.WhereTypeInheritsFrom(typeof(ICommandHander<>));
x.BindWith(new DefaultBindingGenerator());
});
但在以下情况下没有返回实例:
kernel.Get<ICommandHandler<T>>();
【问题讨论】:
-
你试过 kernel.Load(Assembly.GetExecutingAssembly());你需要把它放在 CreateKernel override
-
我不确定我理解你的意思。我现在在 NinjectModule.Load() 方法中有 Kernel.Scan 代码。
标签: binding ninject conventions