gpt4 book ai didi

c# - 带有 caSTLe windsor 的 dll 插件架构

转载 作者:太空狗 更新时间:2023-10-30 00:56:45 25 4
gpt4 key购买 nike

我有一个 IPlugin 接口(interface)和一个 IPluginFactory我想要做的是能够在运行时添加 IPlugin 的新实现(例如,将具有新实现的 Dll 添加到“插件”文件夹)。

我使用 CaSTLe Windsor 作为我的 IoC 容器,我使用 TypedFactory 工具来实现 IPluginFactory。所以这是我的问题:

如何在运行时在 windsor 中注册新的 IPlugin 实现(我正在考虑添加一个包含 WindsorInstaller 的 Dll,但我不确定如何进行)

最佳答案

Windsor 对插件有一些支持,但这不是框架的主要目标。最值得注意的是,Windsor 不提供任何开箱即用的机制来发现新的 .dll 已被放入目录中。它还不提供与插件的任何形式的 OOTB 隔离(以将它们托管在单独的 AppDomain 或其他形式中的形式)。它也不提供卸载插件/组件的能力(有一个 container.RemoveComponent() 方法,但它并没有真正起作用,并且在即将推出的 Windsor 3 中被删除)。

如果您需要在运行时执行这些操作,也许 MAF 和 MEF 的组合更适合您的要求。

如果您放宽安全要求(无隔离)和运行时更改要求(在启动时一次),Windsor 可以支持这种情况。

最好的方法是在您的插件程序集中安装一些安装程序 (IWindsorInstaller) 并使用

container.Install(FromAssembly.InDirectory(...));

发现这些程序集并运行安装程序注册您的插件组件的方法。

关于c# - 带有 caSTLe windsor 的 dll 插件架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6904821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com