是否有一个故事背后的纳米容器类在NEventStore ?是否存在与其他IoC的依赖关系,或者它是由NEventStore作者自己从头编写的?
我问这个问题是因为我喜欢这个类的聪明方法,它似乎是一个非常轻量级的IoC容器,非常容易理解。
如果有一个唯一的包只有这个功能,那就很好了。
你的问题是一个只有NEventStore的开发者才能真正回答的问题,但是从可用的源代码中很容易发现它的实现非常简单,并且"缺乏"许多使其成为"真正的"DI容器的功能。据我所知,代码并不是真正基于任何现有的容器,尽管在基本所有容器看起来都很相似。
NanoContainer
实现意味着实现NEventStore本身需要的足够的功能,或者用户在改变框架的默认行为时需要的功能。
一个DI库应该具备什么样的特性才能成为一个"真正的"DI容器还有待讨论,但在我看来,它至少应该能够自动连接类型(根据构造函数的参数自动将依赖项注入构造函数)。NanoContainer
不支持这一点。它缺少的其他功能有:
- <
- Batch-registration特性/gh>
- 开放通用型注册
- 支持(每个请求)限定的生活方式
- 未注册类型分辨率。
- 装潢师注册或拦截。
- 支持释放实例(完成后处理实例)
- 发现常见配置问题的诊断工具
你是否需要这些功能当然取决于很多因素