在运行时配置NancyFx依赖注入

本文关键字:依赖 注入 NancyFx 配置 运行时 | 更新日期: 2023-09-27 18:10:46

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

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

我找到了Bootstrapper方法。ConfigureApplicationContainer是做DI配置的地方,但因为我想使用一个动态系统,没有服务器项目对所有插件程序集的引用,这在我的情况下是不够的。

这甚至可能与TinyIoC或我需要寻找另一个IoC容器?

Thanks lot in advance

在运行时配置NancyFx依赖注入

不确定这是否适合您的需要,但这是建议:您可以让每个插件做自己的容器配置,通过让每个插件在plugins .dll中提供IRegistrations的实现。

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

或者你可以在Bootstrapper.ConfigureApplicationContainer方法中扫描自己的插件目录,并扫描插件的.dll以查找IRegistrations或你自己的自定义钩子。