动态编译代码和执行代码(二)
侧边栏壁纸
  • 累计撰写 62 篇文章
  • 累计收到 20 条评论

动态编译代码和执行代码(二)

一缕清风
2021-01-30 / 0 评论 / 62 阅读 / 正在检测是否收录...

简介

在上篇文章中介绍了如何用微软原生的方式动态执行代码或生成exe或者dll,这篇文章将介绍如何利用第三方脚本引擎实现动态运行代码,本文用到的第三方脚本引擎为cs-script

官网地址:[https://www.cs-script.net/
Github:https://github.com/oleg-shilo/cs-script

使用

动态加载代码生成并执行

//动态加载代码并生成
dynamic script = CSScript.LoadCode(
                           @"using System.Windows.Forms;
                             public class Script
                             {
                                 public void SayHello(string greeting)
                                 {
                                     MessageBox.Show(""Greeting: "" + greeting);
                                 }
                             }")
                             .CreateObject("*");
script.SayHello("Hello World!");

//动态创建方法
var product = CSScript.CreateFunc<int>(@"int Product(int a, int b)
                                         {
                                             return a * b;
                                         }");
int result = product(3, 4);

//动态加载方法
var SayHello = CSScript.LoadMethod(
                        @"using System.Windows.Forms;
                          public static void SayHello(string greeting)
                          {
                              MessageBoxSayHello(greeting);
                              ConsoleSayHello(greeting);
                          }
                          static void MessageBoxSayHello(string greeting)
                          {
                              MessageBox.Show(greeting);
                          }
                          static void ConsoleSayHello(string greeting)
                          {
                              Console.WriteLine(greeting);
                          }")
                         .GetStaticMethod("*.SayHello" , ""); 
SayHello("Hello again!");
0

评论 (0)

取消