使用 Remote.Linq 进行序列化和反序列化 C# 表达式

问题描述 投票:0回答:1

任何人都可以帮助我并分享一个如何使用

Remote.Linq
System.Text.Json
序列化和反序列化 C# 表达式的示例吗?我没有找到任何有效的例子。

Expression<Func<int, bool>> expression = x => x > 5;

var remoteExpression = expression.ToRemoteLinqExpression();

???
c# linq serialization deserialization
1个回答
0
投票

我找到答案了

Expression<Func<int, int>> expr = x => x + 1;
var remoteExpression = expr.ToRemoteLinqExpression();

var serializerOptions = new JsonSerializerOptions().ConfigureRemoteLinq();
var serializedExpr = JsonSerializer.Serialize(remoteExpression, serializerOptions);

var deserializedExpr =  JsonSerializer.Deserialize<Remote.Linq.Expressions.LambdaExpression>(serializedExpr, serializerOptions);
var originalExpr = deserializedExpr?.ToLinqExpression();

var result = originalExpr?.Compile().DynamicInvoke(1); // 2
© www.soinside.com 2019 - 2024. All rights reserved.