【问题标题】:Trying to avoid AppDomains试图避免 AppDomains
【发布时间】:2009-12-29 02:35:27
【问题描述】:

我有一个运行在 Linux/mono 上的长期运行的 C# 服务器应用程序,并且我添加了动态加载 DLL 程序集以扩展应用程序的功能。我发现如果不使用 AppDomains 就无法在运行时更新这些 DLL 程序集,这看起来会妨碍我已经完成的工作。当然会有解决方法,但这不是我真正想要的。

mono 是否提供任何我可能错过的替代解决方案? C# 4.0 在这方面有什么新东西吗?

【问题讨论】:

    标签: c# dll plugins mono appdomain


    【解决方案1】:

    您是否考虑过将应用程序分解为不同的组件,并通过 Web 服务或 TCP/IP 在它们之间进行通信,而不是加载新程序集来修改行为?这样,您可以通过更改组件调用的位置来更改应用程序的行为(在运行时)。例如,您可以使用新行为构建一个新组件,例如 webservice,然后指示所有现有组件使用它。

    它还可以解决具有单声道运行时长时间运行的应用程序的一些内存问题。

    【讨论】:

    • 所有的消息管道,以及带来的开销是我试图避免的。我的应用使用单声道运行很长时间没有任何问题。
    【解决方案2】:

    我使用了 Mono.CSharp 库。您可以即时编译 c# 代码,然后在主应用程序中放置挂钩以执行它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      相关资源
      最近更新 更多