2011-04-07 82 views
4

所以我来自Python背景,并开始进入我的Mac上的C#和Mono。我刚刚找到了Mono CSharpRepl tool,并且想用它来实现我在Python中的类似工作流,其中包括在我修复Python代码中的错误时反复调用'reload(module)'。 Mono的CSharpRepl具有类似的功能吗?目前我刚刚退出,重新启动,然后再次调用'LoadAssembly()'和'using'语句,这很痛苦。我可以重新加载Mono CSharpRepl中的程序集吗?

回答

5
$ csharp 
Mono C# Shell, type "help;" for help 

Enter statements below. 
csharp> var dom = AppDomain.CreateDomain("tmp"); 
csharp> dom.Load("System.Core"); 
System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 
csharp> AppDomain.Unload(dom); 
csharp> 

这会做你想要什么,我相信

+0

我可以用这方面的工作,除了我已经试过装我自己组装和CSHARP回来了System.IO.FileNotFoundException。然后尝试加载System.Collections到DOM,我得到相同的错误。 System.Core是我迄今为止唯一能够加载的东西。有什么建议么? – spade78 2011-04-08 02:57:14

+0

看起来像C#果壳书籍涵盖了AppDomain。想想我知道我为什么得到System.IO.FileNotFoundException。将进一步阅读和工作。 – spade78 2011-04-08 03:12:24

+0

@spae:欢呼!您也可以使用'AppDomain.AssemblyResolve' [MSDN](http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve(v = VS.100).aspx)来修复您的绑定。所有这些对于Javans,Pythonists等都是已知的领域。 – sehe 2011-04-08 06:46:43

1

恐怕这可能会非常棘手,除了丢弃整个AppDomain之外,Net无法卸载程序集 - 这可能不会比重新启动CSharpRepl更简单。

相关问题