关于NEventStore中NanoContainer的故事是什么?

时间:2014-06-10 06:29:33

标签: c# ioc-container neventstore

NEventStore的Nanocontainer课程背后有故事吗? 是否存在与其他IoC的关系依赖关系,还是由NEventStore本身的作者从头开始编写的?

我问这个是因为我喜欢这个类的智能方法,它似乎是一个非常轻量级的IoC容器并且非常容易理解。

如果有一个只有这个功能的独特包,那就没关系了。

1 个答案:

答案 0 :(得分:2)

你的问题是只有NEventStore的开发人员才能真正回答,但是从available source code很容易发现实现非常简约,并且“缺乏”很多功能使它成为'真正'的DI容器。据我所知,代码并不是真正基于任何现有容器,尽管基本上所有容器看起来都很相似。

NanoContainer实现旨在实现NEventStore本身所需的足够功能或用户在更改框架的默认行为时所需的功能。

可以讨论DI库应该具有什么功能才能成为“真正的”DI容器,但IMO应该至少能够自动连接类型(其中依赖关系会根据构造函数的参数自动注入构造函数中) )。 NanoContainer不支持此功能。它缺乏的其他功能是:

  • 批量注册功能
  • 开放通用类型的注册
  • 支持(按要求)范围的生活方式。
  • 未注册的类型解析。
  • 装饰者注册或拦截。
  • 支持releasing instances(完成时处理实例)
  • 发现常见配置问题的诊断工具

当然,您是否需要这些功能取决于很多因素。