2009-12-29 62 views
5

我有一个运行在Linux/mono上的长时间运行的C#服务器应用程序,并且我添加了动态加载DLL程序集以扩展应用程序的功能。我发现在运行时更新这些DLL程序集无需使用AppDomain即可完成,它看起来只会影响我已经完成的工作。当然会有解决办法,但那不是我真正想要的。试图避免AppDomains

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

回答

0

我使用了Mono.CSharp库。您可以即时编译c#代码,并将钩子放入主应用程序中以执行它。

1

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

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

+0

所有的消息管道和带来的开销是我想要避免的。我的应用程序长时间运行单声道时没有遇到任何问题。 – FlappySocks 2009-12-29 05:05:02