将类序列化为单个字符串

时间:2019-05-11 18:47:26

标签: c# json serialization

我想序列化和反序列化一个自定义类,使其表现得像一个简单的枚举。

例如:

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-representation中的封装。

0 个答案:

没有答案