你好,我想对一个类进行反序列化,而这个类中包含一个枚举值:
[JsonConverter(typeof(StringEnumConverter))]
public enum MessageType {
Verify,
Disconnect,
}
[Serializable]
public class SocketMessage {
public Dictionary<String, String> Header { get; private set; }
public MessageType MessageType { get; private set; }
public SocketMessage(MessageType type) {
Header = new Dictionary<String, String>();
MessageType = type;
}
public void AddHeaderData(String key, String data) {
Header.Add(key, data);
}
public byte[] ToJSONBytes() {
String json = JsonConvert.SerializeObject(this);
return Encoding.UTF8.GetBytes(json);
}
public static SocketMessage FromJSONBytes(byte[] json) {
String s = Encoding.UTF8.GetString(json);
return JsonConvert.DeserializeObject<SocketMessage>(s);
}
}
字典将被正确反序列化,但枚举类型始终获取默认值。请验证JSON是否如下所示:{"Header":{"Test":"Test"},"MessageType":"Disconnect"}。我真的不明白为什么会发生这种情况,请帮忙解答,谢谢!
JsonProperty
,尽管还有许多其他用途可供选择,详见此处。 - steve16351