我是Ninject(以及一般DI)的新手。使用ninject创建后初始化对象
我了解内核加载模块,而且我至今写的代码往往有一行:
myKernel.Get<MyApp>()
它构建的一切,我从绑定需要我的模块中。如果在初始化后需要新实例,这些都由我为初始化绑定的工厂负责。到目前为止,工厂已经没有任何ninject依赖关系,只需要按需新建对象。
现在我已经达到了一点,我需要在初始化后考虑创建对象,而我自己的工厂模式不再削减它。这将用于支持(远程)客户端的pub/sub界面。通过与我的服务器的每个新连接,我想根据ninject模块中定义的一组绑定来创建新的实例IClient
。这是否意味着我在初始化时传入的工厂必须拥有自己的内核(或者指向主内核)? CommonServiceLocator的功能在哪里。 CSL是必要的吗?
在我走得太远以至于死路一条之前,我认为最好在这里问一下其他人如何解决这个问题。
谢谢雷莫。所以如果我理解正确,在2.3中你不需要担心创建工厂接口的具体实现?当使用'ToFactory()'调用绑定时,ninject以某种方式发出实际的实现? – spender
是的,它使用动态代理自动实现 –
不错。谢谢你的帮助。它清除了我脑海中的很多问题。 – spender