C#实现Eval函数功能

众所周知javascript有一个eval函数,可以动态执行代码。但在C#中却没有!

以下代码是在我项目中提取出的核心代码,其实很简单就是 编译-->生成程序集-->反射调用。

高手指点,新手学习!

// 如果执行成功返回NULL,否则返回错误文本
string  strErr;

// 代码执行结果是以字符串形式返回的,因为我的项目中只须要字符串结果,大家可跟据须要自己修改。
string  strResult  =  CommandDebugger.Evaluator.Eval(“Your Codes”,  out  strErr);


代码下载:下载地址

 

------------------------------------------------------------------

呵呵,谢谢大家的意见,本人新手还请大家见谅,其实这个功能是跟据我的程序“量身定做”的。

ironpython也听说过,不过一直没用过也不太了解。

 

在我的项目中有这样一种功能,可以动态执行一段代码并返回值。

比如,查看当前上下文中一静态变量的值,可以这么写:

string strErr;

string strResult = CommandDebugger.Evaluator.Eval("StaticClass.Value",out strErr);

还可以用include c:/windows/system.dll等语句导入程序集
using System.xml;  等语句引用命名空间
print:输出语句结果等。。

如果是单纯是实现一个Eval函数我想我这个方法肯定不是很好,但是跟据我的程序的须求,呵呵,应该还算过得去吧。。。还请大家指点!!

其中主要用到以下类实现。

CSharpCodeProvider
CompilerParameters
CompilerResults

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值