c# - 将类序列化为单个字符串
问题描述
我想序列化和反序列化一个自定义类,使其表现得像一个简单的枚举。
例如:
public enum Channel
{
EMail,
Telephone
}
给出以下 Json 表示:
{
"Channel": "EMail"
}
我目前的做法:
[Serializable]
public sealed class Channel : ISerializable
{
public static readonly Channel Email = new Channel("Email");
public static readonly Channel Telephone = new Channel("Telephone");
public string Key { get; private set; }
//// Deserialization
private Channel(SerializationInfo info, StreamingContext context)
{
Key = (string)info.GetValue(nameof(Channel), typeof(string));
}
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue(nameof(Channel), Key);
}
}
但这带来了以下 json 表示:
{
"Channel":{"Channel":"Email"}
}
所以我想摆脱类的“复杂结构”。在序列化的上下文中,它应该表现得像一个枚举或字符串。我怎样才能实现这种行为?总而言之,我想摆脱 json 表示中的封装。
解决方案
推荐阅读
- grails - grails如何随机化资产资源的文件名?
- python - AttributeError:“GPT2Model”对象没有属性“gradient_checkpointing”
- c# - 在 WPF 中 ImageBox.Source == null 时无法保存 SQLİte
- algorithm - 计算无向图的最长路径,其中顶点可以访问多次但边只能访问一次
- python - 有没有办法在字典的开头添加新值
- pine-script - Pinescript,绘图标题显示实时浮点数?
- node.js - 如何在 REST API 中将多个 API 调用合并为一个调用
- python - 机器人不退出 VKBottle 状态
- laravel - 护照 UUID、客户 UUID 和用户 UUID
- linux - 在 Pulseaudio 中禁用立体声重复