我想序列化和反序列化一个自定义类,使其表现得像一个简单的枚举。
例如:
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中的封装。