gpt4 book ai didi

c# - 如何创建具有热插拔能力的松散耦合架构?

转载 作者:行者123 更新时间:2023-11-30 18:07:17 25 4
gpt4 key购买 nike

我有兴趣创建一个由模块组成的桌面应用程序,这些模块的源代码嵌入到应用程序本身中,允许用户在运行时编辑应用程序,并且在不重新启动应用程序的情况下使用更新的模块。谁能为此建议一个好的架构?

我希望为此使用 Microsoft.Net 和 C#。 DLR 不是一个选项。

谢谢!

最佳答案

要在简短的帖子中为此建议一个好的架构并不容易。

首先,我会为用户编写/修改的每个模块定义一个契约(一个接口(interface)),该模块必须实现。它应该至少包含一个 Execute 方法。

然后我会为这些模块创建一个包装类:

  1. 从文件加载源代码
  2. 包装器编译文件并确保它实现契约(Contract)
  3. 包含文件是否可以成功编译的指示符
  4. 还要实现合约,方便调用和处理

然后我会有某种外壳,其中包含所有模块包装器的集合。任何成功编译的包装器都会让 Shell 调用模块接口(interface)的 Execute 方法。

当涉及到动态编译和执行代码时,此链接应提供您需要的所有信息: http://www.west-wind.com/presentations/dynamicCode/DynamicCode.htm

关于c# - 如何创建具有热插拔能力的松散耦合架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4067918/

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