我参与了几个开源项目,它们共同提供了一个应用程序开发框架。我的问题是我应该提供哪些机制来将它们相互整合?
在概念层面,答案很明确 - DI / IoC。 “唯一”的问题是决定哪一个。在几个安装中,我们使用了StructureMap,但随后出现了一个只想要其中一个组件且需要NInject的用户。
因此,为了使问题合格,我应该如何构建我的组件,以便可以使用各种DI / IoC容器将它们相互集成(和第三方)。
我能想到的最好的方法是将所有集成代码分离到单独的项目中,然后为每个受支持的IoC容器创建一个项目,但这听起来像IoC平方一样可疑。
有什么好主意吗?或者我只是在想太难?
P.S。对于好奇的人:NDjango; Bistro; Workflow Server
答案 0 :(得分:2)
只要您开发可重用的组件,就可以在DI-friendly way without ever referencing any particular DI Container。
中实现它们只有当您需要编写一个需要DI容器的实际运行的应用程序时,但据我所知,您正在开发一个框架,并且最好将其保持为DI中性。
答案 1 :(得分:2)
请参阅this very related question(几乎重复)。
有关集成多个项目同时保持其独立性的灵感,请参阅Castle Project。