I want some code that compiles the code that is in my TextBox (for example). What I mean is I want to compile code after running the program. How can I do this?
相关问题
- Sorting 3 numbers without branching [closed]
- Graphics.DrawImage() - Throws out of memory except
- Why am I getting UnauthorizedAccessException on th
- 求获取指定qq 资料的方法
- How to know full paths to DLL's from .csproj f
See here and here.
Just be careful, any code that is compiled and loaded, cannot be unloaded. This can cause memory leak, i.e. if someone keeps typing and changing the code and compiling it, assemblies get loaded and you will ultimately run out of memory.
One solution is to create a second AppDomain and load the assembly in there and when not needed, unload the AppDomain.
See this article:
http://support.microsoft.com/kb/304655
Here's the sample code they provide:
As Aliostad has mentioned in his answer, be careful with this solution, though. You will need to make sure your compiled code ends up in its own
AppDomain
, otherwise you will experience memory leaks.See this related question on how to load the code into a separate
AppDomain
:How can I prevent CompileAssemblyFromSource from leaking memory?