我有一个在 Linux/mono 上运行的长时间运行的 C# 服务器应用程序,我添加了动态加载 DLL 程序集的功能以扩展应用程序。我发现如果不使用 AppDomains 就无法在运行时更新这些 DLL 程序集,这看起来只会妨碍我已经完成的工作。当然会有解决方法,但这不是我真正想要的。
mono 是否提供了我可能错过的任何替代解决方案? C# 4.0 在这方面有什么新东西吗?
最佳答案
您是否考虑过将应用程序分解为不同的组件,并通过网络服务或 TCP/IP 在它们之间进行通信,而不是加载新程序集来修改行为?这样您就可以通过更改组件调用的位置来更改应用程序的行为(在运行时)。例如,您可以构建一个具有新行为的新组件,例如 webservice,然后指示所有现有组件使用它。
它还将解决使用单声道运行时长时间运行的应用程序的一些内存问题。
关于c# - 试图避免 AppDomains,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1972629/