有没有一种方法可以将调用与FromAssembliesMatching结合起来以自动设置大多数接口并使用一些显式绑定?我有以下的代码应该将所有自动ISomething的东西,然后建立了地方的具体落实接受两个布尔变量作为自变量的IUnitOfWork接口的特定构造:FromAssembliesMatching覆盖明确设置的绑定
kernel.Bind(x => x.FromAssembliesMatching("*.dll").SelectAllClasses()
.InNamespaces("MyNamespace").BindDefaultInterface());
kernel.Bind<IUnitOfWork>().ToConstructor(x => new UnitOfWork(true, false));
然而,当我尝试调用TryGet这样我得到一个空回:
kernel.TryGet<MyNamespace.IUnitOfWork>()
它正常工作时,我周围的切换顺序和呼叫的第二个电话不包括对执行的UnitOfWork明确:
kernel.Bind<IUnitOfWork>().ToConstructor(x => new UnitOfWork(true, false));
kernel.Bind(x => x.FromAssembliesMatching("*.dll").SelectAllClasses()
.InNamespaces("MyNamespace").Excluding(typeof(UnitOfWork))
.BindDefaultInterface());
颠倒顺序,或者在尝试解析IUnitOfWork的实例时再次将调用排除在空外。
结合自动匹配和显式配置的正确方法是什么?我正在使用Ninject 3.2.0.0和Ninject.Extensions.Conventions 3.2.0.0。