我在本网站上阅读了一些内容:
我使用Ninject。如果我理解这些建议,就必须:
这看起来很奇怪,特别是对于工厂来说。我有很多项目使用相同的库。所有这些项目是否应该重新定义ninject模块和工厂?
您怎么看?
答案 0 :(得分:1)
这很大程度上取决于您的库的上下文,我是如何做到的:
初始化主项目中Bootstrapper中的所有内容。虽然我有几个级别的bootstrappers,我配置不同的东西(主要是因为我在同一类项目中使用我的库,所以他们有相似的配置)
为了保持从Ioc框架中抽象出来,我使用了您可以在工厂中使用的ServiceLocator pattern
。
答案 1 :(得分:1)
配置不一定在应用程序集中。它也可以在几个专用组件中,不包含任何配置的一部分。但正如您所提到的,它不应该是实现的一部分。如果您在多个项目中共享完全相同的配置,则可以引用现有项目。
对于工厂,您可以在将来使用Ninject.Extensions.Factory
,这样您就不必自己实施。