【发布时间】:2011-08-11 10:50:24
【问题描述】:
您如何在分布式系统中实现 DI,因为您无法为每个分布式组件嵌入整个 DI 框架。
【问题讨论】:
标签: c# java .net frameworks dependency-injection
您如何在分布式系统中实现 DI,因为您无法为每个分布式组件嵌入整个 DI 框架。
【问题讨论】:
标签: c# java .net frameworks dependency-injection
在分布式系统中,每个自治组件本身就是一个单独的应用程序,因此应该有每个自己的 Composition Root 用于连接组件。如果使用 DI 容器,则应使用 Register Resolve Release 模式。
由于每个组件本身就是一个应用程序,它们甚至不必使用同一个容器(甚至是同一个平台)。
【讨论】:
好吧,如果您愿意,可以将 DI 平台与每个组件一起分发。一些平台集成了 DI,因此您可以或多或少地将其作为平台的一项功能。
但是,更好的想法是使用平台而不是依赖注入。将方法调用分配给其他分布式组件,您可以在设计中获得可扩展性(尽管您可能会损失性能)和简单性。
【讨论】:
好吧,如果 DI 框架不存在,那么如果它不存在,您就不能很好地直接/间接引用它...如果您希望在分布式组件中使用 DI,它必须在本地可用,因为远程 DI 不会感觉服务本身通常是不可序列化的,因为这个概念没有意义。
【讨论】: