#if !BESTHTTP_DISABLE_SIGNALR_CORE && !BESTHTTP_DISABLE_WEBSOCKET using System; namespace BestHTTP.SignalRCore.Encoders { public sealed class LitJsonEncoder : BestHTTP.SignalRCore.IEncoder { public string Name { get { return "json"; } } public LitJsonEncoder() { LitJson.JsonMapper.RegisterImporter((input) => input); LitJson.JsonMapper.RegisterImporter((input) => (int)input); LitJson.JsonMapper.RegisterImporter((input) => (int)(input + 0.5)); LitJson.JsonMapper.RegisterImporter((input) => Convert.ToDateTime((string)input).ToUniversalTime()); LitJson.JsonMapper.RegisterImporter((input) => (float)input); LitJson.JsonMapper.RegisterImporter((input) => Convert.FromBase64String(input)); } public T DecodeAs(string text) { return LitJson.JsonMapper.ToObject(text); } public T DecodeAs(byte[] data) { throw new NotImplementedException(); } public byte[] EncodeAsBinary(T value) { throw new NotImplementedException(); } public string EncodeAsText(T value) { return LitJson.JsonMapper.ToJson(value); } public object ConvertTo(Type toType, object obj) { string json = LitJson.JsonMapper.ToJson(obj); return LitJson.JsonMapper.ToObject(toType, json); } } } #endif