当前位置: 首页>>代码示例>>C#>>正文


C# IJsonSerializer.DeserializeNextObject方法代码示例

本文整理汇总了C#中IJsonSerializer.DeserializeNextObject方法的典型用法代码示例。如果您正苦于以下问题:C# IJsonSerializer.DeserializeNextObject方法的具体用法?C# IJsonSerializer.DeserializeNextObject怎么用?C# IJsonSerializer.DeserializeNextObject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IJsonSerializer的用法示例。


在下文中一共展示了IJsonSerializer.DeserializeNextObject方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ReceivedPollResponse

        private bool ReceivedPollResponse(IJsonSerializer jsonReader, CancellationToken token, ref bool timedOut)
        {
            bool started = false;
            var start = DateTime.Now;
            try {
                while (jsonReader.Read() && !token.IsCancellationRequested) {
                    _pauseWait.Wait();
                    if (jsonReader.CurrentToken == JsonToken.StartArray) {
                        timedOut = true;
                        started = true;
                    } else if (jsonReader.CurrentToken == JsonToken.EndArray) {
                        started = false;
                    } else if (started) {
                        IDictionary<string, object> change;
                        try {
                            change = jsonReader.DeserializeNextObject<IDictionary<string, object>>();
                        } catch(Exception e) {
                            var ex = e as CouchbaseLiteException;
                            if (ex == null || ex.Code != StatusCode.BadJson) {
                                Log.To.ChangeTracker.W(Tag, "Failure during change tracker JSON parsing", e);
                                throw;
                            }

                            return false;
                        }

                        if(OnChangeFound != null) {
                            OnChangeFound(change);
                        }

                        timedOut = false;
                    }
                }
            } catch (CouchbaseLiteException e) {
                var elapsed = DateTime.Now - start;
                timedOut = timedOut && elapsed.TotalSeconds >= 30;
                if (e.CBLStatus.Code == StatusCode.BadJson && timedOut) {
                    return false;
                }

                throw;
            }

            return true;
        }
开发者ID:jonfunkhouser,项目名称:couchbase-lite-net,代码行数:45,代码来源:OneShotOrLongPollLogic.cs

示例2: ReceivedPollResponse

        public bool ReceivedPollResponse(IJsonSerializer jsonReader, ref bool timedOut)
        {
            bool started = false;
            var start = DateTime.Now;
            try {
            while (jsonReader.Read()) {
                _pauseWait.Wait();
                if (jsonReader.CurrentToken == JsonToken.StartArray) {
                        timedOut = true;
                    started = true;
                } else if (jsonReader.CurrentToken == JsonToken.EndArray) {
                    started = false;
                } else if (started) {
                    IDictionary<string, object> change;
                    try {
                        change = jsonReader.DeserializeNextObject();
                    } catch(Exception e) {
                        var ex = e as CouchbaseLiteException;
                        if (ex == null || ex.Code != StatusCode.BadJson) {
                            Log.E(TAG, "Failure during change tracker JSON parsing", e);
                            throw;
                        }
                            
                        return false;
                    }

                    if (!ReceivedChange(change)) {
                        Log.W(TAG,  String.Format("Received unparseable change line from server: {0}", change));
                        return false;
                    }

                    timedOut = false;
                }
            }
            } catch (CouchbaseLiteException e) {
                var elapsed = DateTime.Now - start;
                timedOut = timedOut && elapsed.TotalSeconds >= 30;
                if (e.CBLStatus.Code == StatusCode.BadJson && timedOut) {
                    return false;
                }

                throw;
            }

            return true;
        }
开发者ID:transformersprimeabcxyz,项目名称:_TO-DO-couchbase-lite-net-couchbase,代码行数:46,代码来源:ChangeTracker.cs


注:本文中的IJsonSerializer.DeserializeNextObject方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。