1.安装Nuget包

2.入口程序如下:
internal class Program
{
static void Main(string[] args)
{
NatashaManagement
.GetInitializer()
.WithMemoryUsing()
.WithMemoryReference()
.Preheating<NatashaDomainCreator>();
AssemblyCSharpBuilder builder = new();
builder.GetException();
builder.UseRandomLoadContext();
builder.UseSmartMode();
builder.WithDebugCompile(debugger => debugger.ForAssembly());
string script = File.ReadAllText("Test.cs");
builder.Add(@$"{script}");
var action2 = builder
.GetAssembly()
.GetDelegateFromShortName<Action<string>>("Test", "PrintLoop");
action2("线程周期执行");
Console.ReadKey();
}
}
如果不需要参数可以使用Action即可,多个参数则Action<string,object,...>,第一个参数Test为类型名称,第二个参数PrintLoop为方法名称
3.脚本cs文件如下:
public class Test
{
public void PrintLoop(string param)
{
Console.WriteLine($"传参:{param}");
while (true)
{
Console.WriteLine($"Hello World:{new Random().Next(1000)}");
Thread.Sleep(1000);
}
}
}
4.运行程序打印结果如下:

Natasha在.cs脚本执行中的应用
149

被折叠的 条评论
为什么被折叠?



