Nancy: 有没有办法向 Nancy 动态注册模块?

创建于 2015-12-04  ·  12评论  ·  资料来源: NancyFx/Nancy

你好,

我将通过手动加载程序集( *.dll )动态注册一个模块。 有任何想法吗?

太谢谢了。

最有用的评论

@brgrz刚刚为你写了一篇文章。 谢谢。 让 Nancy 支持热插拔

所有12条评论

@khillang你好,有什么想法吗? 谢谢。

您可以覆盖引导程序中的Modules属性并返回ModuleRegistration 。 默认实现如下所示; https://github.com/NancyFx/Nancy/blob/master/src/Nancy/Bootstrapper/NancyBootstrapperBase.cs#L107 -L121。

@khillang感谢您的信息。 不幸的是,这不是我真正想要的。 通过您的方式,我们可以自定义模块列表; 但是,每次要在运行时注册新模块时,都需要重新启动 NancyHost。 我想要做的是动态反映一个dll并在运行时将模块注册到NancyHost。 其实就是实现NancyModule的热插拔。 有任何想法吗? 谢谢!

不。 这不可能。 Nancy 在启动时扫描模块并在容器中注册一次。 这是因为路由处理程序等的缓存。

@khillang如果我们创建多个 NancyHost 实例或 Mutitiple Process 来处理 NancyModule 热插拔怎么样。 呃,这可不是什么好办法。 无论如何,感谢您的及时回复。 否则,也许我将不得不整夜调试和研究您的源代码。 :D

我能想到的唯一方法是运行自托管,每当你有一个新的 DLL 要加载时,你就杀死主机,加载 DLL,然后再次启动它——你还需要处理引导程序并创建一个新实例每次。

@khillang @grumpydev大家好,Nancy 支持模块热插拔是可能的,我只是对 Nancy 做了一些小改动。 它运作良好。 :D 如果你有兴趣,我们可以一起讨论。 我要睡觉了,现在是凌晨三点半。 :D

@Hell0wor1d你是怎么做到的? 为什么不与社区分享呢? 公关或要点?

@brgrz刚刚为你写了一篇文章。 谢谢。 让 Nancy 支持热插拔

谢谢,干得好。

我知道这个问题已经解决了,但是它找到进入官方版本的可能性有多大?

抱歉,但我认为这不再是最新的了.. 目前有没有办法通过代码仅注册特定模块?

此页面是否有帮助?
0 / 5 - 0 等级