本文整理汇总了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;
}
示例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