在上篇文章中介绍了如何用微软原生的方式动态执行字符串代码或生成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!");
最后修改:2022 年 09 月 29 日
免责声明:本站为个人博客,博客所发布的一切修改补丁、注册机和注册信息及软件的文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途。否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。访问和下载本站内容,说明您已同意上述条款。