using System; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; namespace Ooui { public class Message { [JsonProperty("mid")] public long Id = GenerateId (); [JsonProperty("m")] public MessageType MessageType = MessageType.Nop; [JsonProperty("id")] public string TargetId = ""; [JsonProperty("k")] public string Key = ""; [JsonProperty("v")] public object Value = ""; static long idCounter = 0; static long GenerateId () { return System.Threading.Interlocked.Increment (ref idCounter); } } [JsonConverter (typeof (StringEnumConverter))] public enum MessageType { [EnumMember(Value = "nop")] Nop, [EnumMember(Value = "create")] Create, [EnumMember(Value = "set")] Set, [EnumMember(Value = "call")] Call, } }