在运行时配置NancyFx依赖注入

时间:2014-06-29 14:25:24

标签: c# nancy tinyioc

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

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

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

这是否可以用于TinyIoC或我是否需要寻找另一个IoC容器?

提前多多感谢

1 个答案:

答案 0 :(得分:0)

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

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

或者,您可以使用Bootstrapper.ConfigureApplicationContainer方法自行扫描插件目录,并扫描插件.dll以查找IRegistrations或您自己的自定义挂钩。