代码之家  ›  专栏  ›  技术社区  ›  FlappySocks

尝试避免AppDomain

  •  5
  • FlappySocks  · 技术社区  · 15 年前

    我有一个长时间运行的C服务器应用程序,运行在Linux/Mono上,并且我添加了动态加载DLL程序集以扩展应用程序的能力。我发现,如果不使用AppDomain,在运行时更新这些dll程序集是无法完成的,从外观上看,这将妨碍我已经完成的工作。当然会有解决办法,但这不是我真正想要的。

    Mono是否提供了我可能错过的其他解决方案?C 4.0在这方面有什么新进展吗?

    2 回复  |  直到 13 年前
        1
  •  1
  •   tgiphil    15 年前

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

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

        2
  •  0
  •   FlappySocks    13 年前

    我用的是mono.csharp库。您可以即时编译C代码,并将钩子放在主应用程序中以执行它。