c#编译C#语句-把c#看作动态脚本

一般的动态脚本都可以对字符串进行解析,并取得字符串的值,像javascript、php等语言,事实上C#有这个能力。
1.使用c#编译C#语句
因为c#是编译型语言,它不可能像脚本一样不经过编译就能解析出代码的含义,因此实质是编译!!!
使用CSharpCodeProvider 类完成此任务,VB.net也有类似类,你可以使用CompilerParameters 类完成编译时需要的参数设定。
2.一个例子,首先要引用System.dll 类库哦

2.编译结果
一旦C#编译器建立,你可以编译语句字符串了!CSharpCodeProvider允许你以多种方式编译字符串,这里展示了 CompileAssemblyFromSource 方式,其返回 CompilerResults实例结果。

不管编译结果如何,一切都正常结束,你需要检查CompilerResults 的Errors集合,以判断编译的情况。如果没有错误,你可以使用assembly了。
3.使用编译的代码
一旦你编译成功,使用反射可以调用这些建立的实例,并设置属性和调用方法。

最后,感谢上帝,虽然复杂,但是毕竟是C#完成的,再次感谢上帝!

VS2012的例程文件:  DynamicLangTest   ,可以简单评估一条C#语句的小程序, 可以输入 DateTime.Now   或 1+2 +3*5   etc

0 Comments

  1. http://www.shumatongxin376.com

    玉不琢,不成器;人不学,不知道。学而不思罔,思而不学则殆fzvhffzvhf

    Reply
  2. http://www.51syw.com

    在下对你的景仰之情532170236有如滔滔长江之水tehmgtehmg

    Reply

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注

计算器