在上篇文章中介绍了如何用微软原生的方式动态执行字符串代码或生成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!");