首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Eval-Expression.NET:动态执行C#脚本,类似Javascript的Eval函数功能

我们都知道在JavaScript中,我们可以通过Eval来执行JavaScript字符串代码。

下面推荐一个.Net版本的Eval的开源项目。

01

项目简介

Eval-Expression.NET是一个非常强大工具,使得开发人员可以动态编译和执行C#代码和表达式。通过C#反射,还能轻松访问公共和私有方法、字段、属性值,并创建对象实例。

02

使用示例

1、依赖库安装

Install-Package Z.Expression.NET

2、简单公式

using Z.Expressions;

int result = Eval.Execute<int>("X + Y", new { X = 1, Y = 2 });//输出 3Console.WriteLine(result);

3、复杂代码

using Z.Expressions;

int result = Eval.Execute<int>(@" var list = new List<int>() { 1, 2, 3, 4, 5 }; var filter = list.Where(x => x < 4); return filter.Sum(x => x);");//输出 6Console.WriteLine(result);

4、参数占位符

int result = Eval.Execute<int>("{0} + {1}", 1, 2);

5、动态类的属性

dynamic expandoObject = new ExpandoObject();expandoObject.X = 1;expandoObject.Y = 2;int result = Eval.Execute<int>("X + Y", expandoObject);

6、字符串扩展方法

string s = "X + Y";int result = s.Execute<int>(new { X = 1, Y = 2 });

7、委托

using Z.Expressions;

//委托var compiled = Eval.Compile<Func<int, int, int>>("X + Y", "X", "Y");

int result = compiled(3, 4);//输出 7Console.WriteLine(result);

8、扩展方法委托

using Z.Expressions;

//扩展方法委托string s = "X + Y";var compiled = s.Compile<Func<int, int, int>>("X", "Y");

//输出 7int result = compiled(3, 4);Console.WriteLine(result);

03

项目地址

https://github.com/zzzprojects/Eval-Expression.NET

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OSaDdjMaZUS033jvCAvxEqgA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券