0

我有一个由多个项目组成的解决方案,例如:DataLayer(包含 EntityFramework)、UnitTests、WebForms(包含 MVP)、CommonClasses(包含公共服务类)。

你会为所有这些项目实现一个容器,它位于一个单独的类库应用程序中吗?

或者您是否会简单地拥有一个单独的 Windsor 设置来单独处理每个项目中的依赖关系,但是如果各个项目之间存在内部依赖关系怎么办。

或者它是所有 Windsor Setup 的一个,它位于主项目(启动项目)中,用于处理所有依赖项?

谢谢。

4

1 回答 1

2

你会为所有这些项目实现一个容器吗

由于类依赖于其他程序集的类(例如,您的演示者将依赖于存储库或业务层中的服务),因此您的对象图(相互依赖的对象图)需要由一个容器构建。所以是的,所有项目都需要一个容器。

哪个在单独的类库应用程序中?

不,您通常应该将此代码放在应用程序的启动路径中,在您的情况下,该路径是 Web 窗体项目。

但是,如果各个项目之间存在内部依赖关系怎么办。

您的项目之间总是存在依赖关系。如果您的 Web 应用程序没有调用任何业务逻辑或没有连接到数据库,它就不会很有用。

查看这个 Stackoverflow 问题(和答案)以获取有关此主题的更多信息。这是Simple Injector 论坛上的一个答案,也讨论了这个问题。它是关于 Simple Injector 和 Onion 架构的,但您会发现答案信息丰富且适用于您的情况。

于 2013-08-29T12:04:17.893 回答