0

NEventStore 中的 Nanocontainer 类背后有什么故事吗?是否存在与其他 IoC 的关系依赖关系,或者它是由 NEventStore 的作者自己从头开始编写的?

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

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

4

1 回答 1

2

您的问题只有 NEventStore 的开发人员才能真正回答,但从可用的源代码中很容易发现该实现非常简约,并且“缺乏”许多使其成为“真正的”DI 容器的功能。据我所见,代码并不是真正基于任何现有容器,尽管基本上所有容器看起来都相似。

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

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

  • 批量注册功能
  • 开放通用类型的注册
  • 支持(根据请求)范围内的生活方式。
  • 未注册的类型解析。
  • 装饰者注册或拦截。
  • 支持释放实例(完成后释放实例)
  • 用于发现常见配置问题的诊断工具

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

于 2014-06-10T17:10:28.510 回答