一般都是使用配置文件来注册IOC的.
http://www.cnblogs.com/zhangchenliang/archive/2013/01/08/2850970.html
这样的话 配置文件还是很长很长 要是有上百个T实例,得有上百行配置,还挺多的额 汗
@笋干: 这没办法. 你不配置. 程序怎么知道你这个接口到底是想实例化哪个实现呢?. 而且一般也不会有上百个接口那么多吧..
@李丶GuanYao:
像我这里就有上百个啊,ICacheManager<T> 每个可以被缓存的T都需要手动注册下,系统大了,量就很大了。我是想Unity有批量的注册,那肯定也有方法解决这种批量注册~
@笋干:
那我就不知道了..
因为据我所知.. 不管什么IOC. 都是要配置的.
我所知道的方法中, 最方便的就是在配置文件里配置. 然后在后台代码里批量注册.
@李丶GuanYao: 默认的api里是可以批量注册 Class<> 这样的方式,但是我这里用一个一个func来初始化 所以注册起来就不知道怎么获取T了
<T>是泛型,你该去了解下泛型编程思想
我并不是不知道泛型,而是对IOC不了解。这个问题是:我如果我有个N个实例A、B、C。。。都是用同样的配置,那我需要RegisterType N次,我的疑问就是,IOC对于这样的场景是否有优化,有更简单的方式?
@笋干: o
首先一个接口肯定对应一个实现.泛型接口的泛型实现,肯定是只要注册一个就好了.
只是真不知道怎么注册.我都是用一个基类接口来做的.
关于这个问题,我去询问了CacheManager的作者,他给出了一个建议。 https://github.com/MichaCo/CacheManager/issues/20