You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求提供Remote.Linq与System.Text.Json序列化反序列化C#表达式示例

使用Remote.Linq + System.Text.Json序列化/反序列化C#表达式示例

前置准备

首先需要安装对应的NuGet包:

  • Remote.Linq
  • Remote.Linq.SystemTextJson(提供System.Text.Json的表达式转换器)

完整实现代码

using System;
using System.Linq.Expressions;
using System.Text.Json;
using Remote.Linq;
using Remote.Linq.Expressions;
using Remote.Linq.SystemTextJson;

class Program
{
    static void Main()
    {
        // 1. 定义原始C#表达式树
        Expression<Func<int, bool>> originalExpression = x => x > 5 && x < 10;

        // 2. 转换为Remote.Linq兼容的表达式
        Expression remoteExpression = originalExpression.ToRemoteLinqExpression();

        // 3. 序列化Remote.Linq表达式为JSON字符串
        string serializedJson = JsonSerializer.Serialize(remoteExpression, new JsonSerializerOptions
        {
            WriteIndented = true,
            Converters = { new ExpressionConverter() } // 关键:使用Remote.Linq提供的JSON转换器
        });

        Console.WriteLine("序列化后的JSON内容:");
        Console.WriteLine(serializedJson);

        // 4. 反序列化JSON回Remote.Linq表达式
        Expression deserializedRemoteExpr = JsonSerializer.Deserialize<Expression>(serializedJson, new JsonSerializerOptions
        {
            Converters = { new ExpressionConverter() }
        });

        // 5. 将Remote.Linq表达式转换回C#原生表达式树
        Expression<Func<int, bool>> deserializedExpression = deserializedRemoteExpr.ToLinqExpression<Func<int, bool>>();

        // 6. 验证反序列化结果的正确性
        Func<int, bool> evaluateFunc = deserializedExpression.Compile();
        Console.WriteLine("\n反序列化结果验证:");
        Console.WriteLine($"输入6:{evaluateFunc(6)}"); // 输出 True
        Console.WriteLine($"输入10:{evaluateFunc(10)}"); // 输出 False
    }
}

关键说明

  • 必须使用Remote.Linq.SystemTextJson.ExpressionConverter作为Json转换器,否则System.Text.Json无法识别Remote.Linq的表达式类型
  • ToRemoteLinqExpression()用于将原生表达式转换为跨进程/跨平台兼容的Remote.Linq表达式
  • ToLinqExpression<T>()用于将反序列化后的Remote.Linq表达式转换回原生C#表达式树

内容的提问来源于stack exchange,提问作者HamedFathi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 08:20:11