我已经创建了一个 MainFactory,它将解析我的类的所有依赖项,但我想使用 Ninject 以使其自动解析构造函数参数。
所以,我正在尝试将接口绑定到我工厂的方法,就像这样
kernel.Bind<ILoggerContainer>().ToMethod(m => MainFactory.CreateLoggerContainer());
但是,当我绑定依赖于 ILoggerContainer 的东西时,我需要指定方法来像这样解析其他容器
kernel.Bind<IUsersContainer>().ToMethod(m => MainFactory.CreateUsersServiceContainer(kernel.Get<ILoggerContainer>()));
现在我确信有更好的方法,特别是因为 Ninject 的主要目标是自动解决这些依赖关系。
编辑: MainFactory 位于一个单独的项目中,它将包含所有依赖项,因此,如果依赖项发生更改,我只需要更新其 DLL。
使用ninject,以便我可以将构造函数设置为将接口的实现作为参数,并且它会自动设置,
主要问题是我怎样才能做到这一点
kernel.Bind<IUsersContainer>().ToMethod(m => MainFactory.CreateUsersServiceContainer(kernel.Get<ILoggerContainer>()));
变成这样的东西
kernel.Bind<IUsersContainer>().ToMethod(m => MainFactory.CreateUsersServiceContainer());
注意 CreateUsersServiceContainer 的参数已被删除,我假设 Ninject 可以用正确的值填充其参数(已经绑定在 Ninject 中)