Answers:
这样做应该不是问题。只需运行相同的IoC逻辑,而不是实例化类,而是发出执行实例化的代码。
但是通过这样做,您将消除IoC的一个巨大优势:无需重新编译整个应用程序即可更改组成部分的方式的能力。仅通过替换配置,您就可以使应用程序使用不同的服务或数据源。虽然我还没有看到可以充分利用此功能的应用程序,但它仍然是IoC成功的主要部分。
Java / Android的Dagger可以做到这一点。它牺牲了一些运行时魔术(例如Guice's)来提供几乎完全的编译时代码生成体验,包括将大多数运行时错误转换为编译错误。
.NET也很酷。