コード例 #1
0
ファイル: JsonSerializer.cs プロジェクト: yufengfei/Aoite
 /// <summary>
 /// 读取对象。
 /// </summary>
 /// <typeparam name="TData">可序列化对象的类型。</typeparam>
 /// <param name="stream">序列化的流。</param>
 /// <returns>序列化对象。</returns>
 protected override TData Reading <TData>(Stream stream)
 {
     using (var stream2 = new StreamReader(stream, this.Encoding))
     {
         var json = stream2.ReadToEnd();
         return(_serializer.Deserialize <TData>(json));
     }
 }
コード例 #2
0
        protected virtual async Task <T> GetResponseItem <T>(string path, HttpResponseMessage response)
        {
            var json = await GetResponseString(response);

            if (response.StatusCode != HttpStatusCode.OK)
            {
                throw new RestServiceException(GetRestServiceExceptionMessage(path, response.StatusCode));
            }

            return(JSerializer.Deserialize <T>(json));
        }
コード例 #3
0
        protected override async Task <T> GetResponseItem <T>(string path, HttpResponseMessage response)
        {
            var json = await GetResponseString(response);

            if (response.StatusCode != HttpStatusCode.OK)
            {
                var errorResponse = JSerializer.Deserialize <ErrorResponse>(json);
                if (errorResponse == null)
                {
                    throw new RestServiceException(GetRestServiceExceptionMessage(path, response.StatusCode));
                }

                throw new RestServiceException(errorResponse.Payload.Message, errorResponse);
            }

            return(JSerializer.Deserialize <T>(json));
        }
コード例 #4
0
        protected override async Task <T> GetResponseItem <T>(HttpResponseMessage response)
        {
            var content = await response.Content.ReadAsStringAsync();

            if (response.StatusCode != HttpStatusCode.OK)
            {
                var errorResponse = JSerializer.Deserialize <ErrorResponse>(content);
                if (errorResponse == null)
                {
                    throw new RestServiceException(
                              GetRestServiceExceptionMessage(response.RequestMessage.RequestUri.ToString(),
                                                             response.StatusCode, content));
                }

                throw new RestServiceException(errorResponse.Payload.Message, errorResponse);
            }

            return(JSerializer.Deserialize <T>(content));
        }
コード例 #5
0
        static Dictionary <string, string> LoadCookie()
        {
            string content = string.Empty;

            if (File.Exists(CookieName))
            {
                content = File.ReadAllText(CookieName, Encoding.UTF8);
            }

            if (!string.IsNullOrEmpty(content))
            {
                Dictionary <string, string> temp = JSerializer.Deserialize <Dictionary <string, string> >(content);

                if (null != temp)
                {
                    return(temp);
                }
            }

            return(new Dictionary <string, string>());
        }
コード例 #6
0
        private IWsMessage DeserializeMessage(string message)
        {
            var eventType = JSerializer.Deserialize <WsMessage>(message).Event;

            switch (eventType)
            {
            case EventType.OrderBook:
                return(JSerializer.Deserialize <OrderBookMessage>(message));

            case EventType.Candle:
                return(JSerializer.Deserialize <CandleMessage>(message));

            case EventType.InstrumentInfo:
                return(JSerializer.Deserialize <InstrumentInfoMessage>(message));

            case EventType.Error:
                return(JSerializer.Deserialize <ErrorMessage>(message));

            default:
                throw new ArgumentException(nameof(eventType));
            }
        }
コード例 #7
0
ファイル: JsonExtensions.cs プロジェクト: doriswang/Test
        public static T FromJson <T>(this string json)
        {
            Check.Argument.IsNotEmpty(json, "json");

            return(JSerializer.Deserialize <T>(json));
        }