动态执行c#代码 netcore3下可用
主要是使用CSScript这个库。nuget上可以选netcore版本的。这个库已经存在很久了。之前在netframework上就用过,不错。(效率没测试,只是实现了我需要的功能)
1 引用 using CSScriptLib;
2 调用
CSScript.EvaluatorConfig.Engine = EvaluatorEngine.Roslyn;
var al= Assembly.LoadFrom(@"F:\gitcode\DynamicPlugin\csst\bin\Debug\netcoreapp3.1\Bll.dll");
dynamic script = CSScript.RoslynEvaluator.ReferenceAssembly("System.ValueTuple")
.ReferenceAssembly(al)
.LoadMethod(@"string Hello()
{
return Bll.op.GetName();
}");
var a= script.Hello(); //返回wxq
3 bll的代码(bll是一个新的项目,只有一个文件op.cs)
using System;
using System.Collections.Generic;
using System.Text;
namespace Bll
{
public class op
{
public static string GetName() {
return "wxq";
}
}
}
4 文档地址 https://www.cs-script.net/cs-script/help-legacy/root/
另github上有源码。搜索cs-script .
netcore的地址 https://github.com/oleg-shilo/cs-script.core
作者:过错
出处:http://www.cnblogs.com/wang2650/
关于作者:net开发做的久而已。十余年时光虚度!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题,可以邮件:wang2650@163.com
联系我,非常感谢。