如何检查先决条件,然后使用DI启动应用程序?

时间:2011-06-30 06:57:38

标签: c# dependency-injection autofac

我的应用程序应该在启动时检查其设置,然后才启动。 我正在试图弄清楚如何使用DI容器来处理它。一方面,我不想把这种自我检查放入组合根。另一方面,如果此检查失败,那么我们不需要使用DI容器注册所有类型,只需退出。

所以我想到了一些2阶段的DI。在第一阶段,仅注册自检期间所需的类型,在第二阶段,注册整个类型集并解决和启动应用对象。但我不明白它是如何做到的。

你会如何应对这种情况?我正在使用Autofac。

感谢。

2 个答案:

答案 0 :(得分:1)

对于两阶段方法,您最初可以使用核心应用程序组件构建容器。然后,您将解决这些问题并运行检查。如果检查通过,则可以使用Update容器方法使用反射的插件更新容器。

但是,您的设置验证类型需要DI吗?为什么不在构建容器之前直接使用它们呢?

答案 1 :(得分:0)

我不知道我是否理解你。

你为什么要这么做呢?

当您的应用程序检查失败时,您只需退出应用程序并卸载容器并释放所有实例。在DI容器中注册甚至包含多个组件的事实不会对您的性能造成太大影响。