4.2 demo 无法使用。代码也不对。
引用Natasha.CSharp, Version=4.2.0.0
执行以下代码 ` public void TestCorder() {
//NatashaInitializer.Preheating();
NatashaManagement.Preheating();
//增加全局的 Using 引用
NatashaManagement.AddGlobalUsing("System");
NatashaManagement.AddGlobalUsing("System.IO");
//使用 Natasha 的 CSharp 编译器直接编译字符串
AssemblyCSharpBuilder sharpBuilder = new AssemblyCSharpBuilder();
//给编译器指定一个随机域
//sharpBuilder.Domain = DomainManagement.Random();
sharpBuilder.UseNatashaFileOut("c:/output");
//如果代码编译错误,那么抛出并且记录日志。
sharpBuilder.CompileFailedEvent += (compilation, errors) =>
{
var errorLog = compilation.Assembly;
};
//添加你的字符串
sharpBuilder.Add("using System; public static class Test{ public static void Show(){ Console.WriteLine(\"Hello World!\");}}");
//编译出一个程序集
var assembly = sharpBuilder.GetAssembly();
//如果你想直接获取到类型
var type = sharpBuilder.GetTypeFromShortName("Test");
//或
type = sharpBuilder.GetTypeFromFullName("xxNamespace.xxClassName");
//创建一个 Action 委托 //必须在同一域内,因此指定域 //写调用脚本,把刚才的程序集扔进去,这样会自动添加using引用 var action = NDelegate.UseDomain(sharpBuilder.Domain).Action("Test.Show();");//, assembly
//运行,看到 Hello World!
action();
}`
报错:

如果找不到引用,就引入环境包.
文档里有个用前必看的章节, 你没看.
上面问题解决了,引用了那个包。
但是我用demo 代码来进行域操作也好像不能正常运行。
https://natasha.dotnetcore.xyz/zh-Hans/docs/core_component/domain/assembly
` var domain = DomainManagment.Random;
var type = NDomain.Create(domain).GetType("public class A{ public A(){Name="1"; }public string Name;}");
var func = NDomain.Create(domain).Func
type.RemoveReferences(); //如果不移除,下次引用A的时候会出现二义性
type = NDomain.Create(domain).GetType("public class A{ public A(){Name=\"2\"; }public string Name;}");
func = NDomain.Create(domain).Func<string>("return (new A()).Name;");
Console.WriteLine(func()); // result : 2`
NDomain 没有了,而且 4.2 里 GetType("public class A{ public A(){Name="1"; }public string Name;}") 这种代码好像都没有办法运行不知道是不是需要引用其它的包
NDomain 现在是 NatashaDomain , 已经改版了. 我去更新一下文档
https://www.cnblogs.com/NMSLanX/p/15799203.html 域插件操作 参考这篇文章
收到谢谢