动态编译C#代码,而不在内存中堆积程序集

动态编译C#代码,而不在内存中堆积程序集,c#,compilation,C#,Compilation,问题(以及一些不必要的信息):我正在用C#创建一个聊天机器人(不是chatterbot),希望用户能够在这个机器人上运行自定义代码。基本上,您通过网络发送一条字符串消息,bot运行其中包含的代码 我已经研究并实际实现/使用了CSharpCodeProvider,但是,每次编译自定义代码时,它都会向AppDomain添加另一个程序集(这是不可能删除的)。当您考虑到在一个生命周期中可能会发生数十个或数百个单独的自定义代码调用时,这就成了一个问题 我的想法是,可能有一种解释语言或类似的东西可以从C#调

问题(以及一些不必要的信息):我正在用C#创建一个聊天机器人(不是chatterbot),希望用户能够在这个机器人上运行自定义代码。基本上,您通过网络发送一条字符串消息,bot运行其中包含的代码

我已经研究并实际实现/使用了CSharpCodeProvider,但是,每次编译自定义代码时,它都会向AppDomain添加另一个程序集(这是不可能删除的)。当您考虑到在一个生命周期中可能会发生数十个或数百个单独的自定义代码调用时,这就成了一个问题


我的想法是,可能有一种解释语言或类似的东西可以从C#调用。

如果删除整个appdomain,则可以删除程序集。因此,您可以创建一个新的appdomain,在那里加载程序集(或从那里编译程序集),并在使用后处理它


您可以每100条语句左右循环一次appdomain,以分摊循环一条语句所需的(少量)时间。

您能给我链接一个教程,创建appdomain并将代码编译到其中吗?我不知道该用谷歌搜索什么,我以前所有的搜索都没有找到任何结果。谷歌搜索“.net创建appdomain程序集编译”可能会有帮助。