首页 > 解决方案 > 什么是最抽象的 JSON 可序列化 C# 数据结构?

问题描述

鉴于此程序

using System;
using System.Collections.Generic;
using System.Text.Json;
                    
public class Program
{
    public static void Main()
    {
        var payload = new Payload();
        payload.Id = "1001";
        payload.PassthroughParameters.Add("Foo", "Bar");
        var jsonString = JsonSerializer.Serialize(payload, new JsonSerializerOptions {
            WriteIndented = true
        });
        Console.WriteLine(jsonString);
        // OUTPUTS:
        // {
        //   "Id": "1001",
        //   "PassthroughParameters": {
        //     "Foo": "Bar"
        //   }
        // }
    }
    
    public class Payload
    {
        public string Id { get; set; }
        public IDictionary<string, string> PassthroughParameters { get; set; } = new Dictionary<string, string>();
    }
}

我可以IDictionary<string, string>用序列化为相同 JSON 的最抽象的 C# 数据结构来替换什么?

我想让在 C# 代码中引用数据结构的内容变得更加困难(例如payload.PassthroughParameters["Foo"]),以避免代码维护的耦合(不是安全问题),同时仍然能够将整个事物传递给内部进程(例如Process(otherParams, payload.PassthroughParameters))。

标签: c#serializationdata-structuresdecoupling

解决方案


推荐阅读