【发布时间】:2012-12-12 05:18:16
【问题描述】:
我当前的项目是一个应用程序,它允许您用 C# 编写代码,然后使用 CSharpCodeProvider 执行它。只要代码本身是一个完整的应用程序,此时它就可以正常工作,例如:
using System;
namespace RuntimeCode {
public static class Program {
public static void Main() {
Console.WriteLine("Hello, world!");
}
}
}
然后应用程序使用CompileAssemblyFromSource 和GenerateInMemory = true 编译给定代码,然后在编译的程序集中调用Main 方法。
我的问题是,如何让编译后的代码访问主应用程序中的对象?
【问题讨论】:
-
这是用于生产应用程序,还是用于娱乐/学习?如果是后者,您应该查看 Roslyn:msdn.microsoft.com/en-us/vstudio/roslyn.aspx 请注意,它没有适当的发布许可证,这意味着您不能将您的应用程序分发给其他人。
-
搜索“C# scripting” - 有很多教程如何使用 C# 编写脚本并相应地将数据传递给新脚本。
-
@Alexei:似乎 OP 不是询问如何从脚本传递数据,而是从脚本访问主机应用程序。
-
如何以及在何处加载生成的程序集?请参阅下面我对我的回答的评论。
标签: c# .net csharpcodeprovider