C6207里也可以用上Eval函数了62.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C6207里也可以用上Eval函数了62

因为在我的某个工具包里需要能动态执行一段代码进行求值的功能,也就是类似于JAVA SCRIPT里的Eval函数和VB SCRIPT的Execute函数功能,但C#与VB.NET却没有类似的函数:( 只能手动编写。上网搜索了一下,幸运的从一个英文站点找到了:)代码量很少,它是通过调用JScript.NET里的Eval函数进行处理的,下面是代码(部分代码我修改与删减过,并非完整的原代码,在此感谢原作者scott): usingusingusing///summary///////summary publicclass///summary///////summary///param?name=statement表达式,如1+2+3+4/param///returns结果/returns publicstaticobject?Eval(stringreturnEval, ????????????????????????BindingFlags.InvokeMethod, nullnewobject[]?{?statement?}///summary///////summary static//构造JScript的编译驱动代码 ????????????CodeDomProvider?provider?=?CodeDomProvider.CreateProvider(JScript); ????????????CompilerParameters?parameters; ????????????parameters?=new?CompilerParameters(); ????????????parameters.GenerateInMemory?=true; ????????????CompilerResults?results; ????????????results?=?provider.CompileAssemblyFromSource(parameters,?_jscriptSource); ????????????Assembly?assembly?=?results.CompiledAssembly; ????????????_evaluatorType?=?assembly.GetType(Evaluator=?Activator.CreateInstance(_evaluatorType); ????????}privatestaticobject?_evaluator?=nullprivatestatic?Type?_evaluatorType?=null///summary///////summary privatestaticreadonlystring?_jscriptSource?=@class?Evaluator ??????????????{ ??????????????????public?function?Eval(expr?:?String)?:?String? ??????????????????{? ?????????????????????return?eval(expr);? ??????????????????} ??????????????} 发表评论 直接调用即可.类似JS函数的eval函数使用.最简单的则是用于做数值计算或逻辑判断(当然可以更复杂!!如动态执行程序代码).如:? object v =?Evaluator.Eval((1+2+3)*4);? 则v的值为24? 或者做逻辑判断:? object v =?Evaluator.Eval(1100);? 则v的值为false? 等等.. public function Eval(expr : String) : String? {? return eval(expr);? }? 其实还可以执行其它的framework中的类库,不单单是简单逻辑运算。前提是jscript引擎可以识别表达式中的类或者函数。即表达式中的标志符必须是fullname类或者在编译jscript代码时候引用命名空间,这样就可以识别已命名空间的类的shotname。要执行动态表达式代码,最好的方法还是ironpython. 支持模板目录, 模板的图片目录源码images/logo.gif 实际变成 template/sofut/images/logo.gif 这样可视化就强多了! (Else) 希望能支持ssi !--#include file=search.html-- (Else) 楼主你好,从stringtemplate换到你的模板引擎,有一点疑问,我用的是MVC,现在想用你的模板引擎来做多用户皮肤的选择。现在出现了一个问题,在扩展MVC引擎的

文档评论(0)

pfenejiarz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档