我正在创建一个使用 DI 容器向其中注入策略的应用程序。部署时,如果我需要更改这些策略,那么使用新策略部署新程序集并修改配置文件以指示 DI 容器使用哪种策略是有效的部署策略吗?
我担心的是机器上应用程序的版本控制会变得有点模糊,因为不同的 dll 会有不同的版本号。
我正在创建一个使用 DI 容器向其中注入策略的应用程序。部署时,如果我需要更改这些策略,那么使用新策略部署新程序集并修改配置文件以指示 DI 容器使用哪种策略是有效的部署策略吗?
我担心的是机器上应用程序的版本控制会变得有点模糊,因为不同的 dll 会有不同的版本号。
这是完全有效的,这甚至是依赖注入的一大好处:它允许模块化开发 - 因此也允许部署:您不必部署所有应用程序,而只需部署修改后的程序集(使用新策略在你的情况下)。
至于版本问题:通常的做法是一个应用程序由许多软件模块(vulgo:程序集)组成,它们具有不同的版本号。这是规则,不是什么特殊情况。因此,所有 DLL 的版本号列表至关重要……
托马斯
DI 的最佳功能之一是模块化应用程序和易于扩展。我认为您通过使用配置文件并让 DI 加载您的策略是正确的。
对于版本问题,您可以考虑 ClickOnce 部署。这可以减少这个版本问题。