0

我正在做一个涉及本地网络的小型自托管 Nancy 服务器来远程控制媒体播放器的副项目。为了支持多个播放器,我实现了一个简单的插件机制,如下所示:http: //code.msdn.microsoft.com/windowsdesktop/Creating-a-simple-plugin-b6174b62

动态加载和执行效果很好,但我遇到的问题是如何告诉 TinyIoC 使用哪个插件实现。目前,我有一个名为 plugins 的子目录,其中存储了 .dll,并且在启动时 TinyIoC 会在此目录中发现一个测试 dll 并连接依赖项,而无需我明确选择任何内容。

我发现 Bootstrapper.ConfigureApplicationContainer 方法是进行 DI 配置的地方,但由于我想使用动态系统并且没有服务器项目对所有插件程序集的引用,这在我的情况下是不够的。

TinyIoC 甚至可以做到这一点,还是我需要寻找另一个 IoC 容器?

非常感谢提前

4

1 回答 1

0

不确定这是否适合您的需求,但无论如何它都是建议:您可以让每个插件都进行自己的容器配置,方法是让每个插件都提供IRegistrations插件 .dll 的实现。

Nancy 将IRegistrations自动选择 up 的实现——只要程序集在启动时加载——并在应用程序启动期间执行它们。

或者,您可以在Bootstrapper.ConfigureApplicationContainer方法中自己扫描插件目录,然后扫描插件 .dll 以获取IRegistrations您自己的自定义挂钩。

于 2014-06-29T20:20:42.570 回答