我做了一个MainFactory,它将解析我的类的所有依赖关系,但是我想使用Ninject来使它自动解析构造函数参数。使Ninject解析ToMethod绑定
所以,我想接口对我厂的绑定方法,像这样
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可以填补其参数与T他正确的价值(已经绑定在Ninject)
我有没有想过什么需要,当我创建一个新的依赖改变,我想你可能是对的在用适当的Bindings替换MainFactory时,我只是想在未来需要时将设计留给添加AOP修饰器。 – user579889 2013-04-23 17:02:44