我在数据库表中存储了一些C#代码。
我有一个字符串中的基类的全部代码。
在存储的C#代码在手后,我将一个名为m1的方法添加到类中,该方法包含一个return <<some C# code>>; (该方法总是返回object以便C#代码可以是:88 + 90、"hello world"、this.ToString()等),将其保存到一个文件中,并使用CSharpCodeProvider编译它,然后在我的程序上运行它。
存储的C#代码可以在基类中使用某些方法。
这个计划效果很好。
现在,我将使用Reflection.Emit来完成这个操作,以避免编译步骤。
这是可能的吗?如果是的话,怎么做呢?
发布于 2012-11-21 21:31:54
现在,我将使用
Reflection.Emit来完成这个操作,以避免编译步骤。
对我来说没什么意义。如果您有要执行的源代码,则基本上有两个选项:
由于虚拟机和中间语言等原因,现在的事情并不像现在这样简单,但这些都是基本的选择。
如果您不想使用CodeDOM,那么剩下两个选项(对应于上面的两个选项):
Reflection.Emit。Reflection.Emit。选择1意味着您需要实现完整的C#编译器。选择2意味着您需要实现一半的C#编译器,加上内存结构的解释器。在这两种情况下,这都是一个巨大的项目,您不会真正“避免编译步骤”。
https://stackoverflow.com/questions/13496979
复制相似问题