本文整理汇总了C#中IConnection.JsonDeserializeObject方法的典型用法代码示例。如果您正苦于以下问题:C# IConnection.JsonDeserializeObject方法的具体用法?C# IConnection.JsonDeserializeObject怎么用?C# IConnection.JsonDeserializeObject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IConnection
的用法示例。
在下文中一共展示了IConnection.JsonDeserializeObject方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Send
public override Task Send(IConnection connection, string data, string connectionData)
{
if (connection == null)
{
throw new ArgumentNullException("connection");
}
string url = UrlBuilder.BuildSend(connection, Name, connectionData);
var postData = new Dictionary<string, string> { { "data", data } };
return HttpClient.Post(url, connection.PrepareRequest, postData, isLongRunning: false)
.Then(response => response.ReadAsString())
.Then(raw =>
{
if (!String.IsNullOrEmpty(raw))
{
connection.Trace(TraceLevels.Messages, "OnMessage({0})", raw);
connection.OnReceived(connection.JsonDeserializeObject<JObject>(raw));
}
})
.Catch(connection.OnError, connection);
}
示例2: ProcessResponse
public static void ProcessResponse(IConnection connection, string response, out bool shouldReconnect, out bool disconnected, Action onInitialized)
{
if (connection == null)
{
throw new ArgumentNullException("connection");
}
connection.MarkLastMessage();
shouldReconnect = false;
disconnected = false;
if (String.IsNullOrEmpty(response))
{
return;
}
try
{
var result = connection.JsonDeserializeObject<JObject>(response);
if (!result.HasValues)
{
return;
}
if (result["I"] != null)
{
connection.OnReceived(result);
return;
}
shouldReconnect = (int?)result["T"] == 1;
disconnected = (int?)result["D"] == 1;
if (disconnected)
{
return;
}
UpdateGroups(connection, groupsToken: result["G"]);
var messages = result["M"] as JArray;
if (messages != null)
{
connection.MessageId = (string)result["C"];
foreach (JToken message in (IEnumerable<JToken>)messages)
{
connection.OnReceived(message);
}
TryInitialize(result, onInitialized);
}
}
catch (Exception ex)
{
connection.OnError(ex);
}
}
示例3: ProcessResponse
// virtual to allow mocking
protected internal virtual bool ProcessResponse(IConnection connection, string response)
{
if (connection == null)
{
throw new ArgumentNullException("connection");
}
if (_initializationHandler == null)
{
throw new InvalidOperationException(Resources.Error_ProcessResponseBeforeStart);
}
connection.MarkLastMessage();
if (String.IsNullOrEmpty(response))
{
return false;
}
var shouldReconnect = false;
try
{
var result = connection.JsonDeserializeObject<JObject>(response);
if (!result.HasValues)
{
return false;
}
if (result["I"] != null)
{
connection.OnReceived(result);
return false;
}
shouldReconnect = (int?)result["T"] == 1;
var groupsToken = result["G"];
if (groupsToken != null)
{
connection.GroupsToken = (string)groupsToken;
}
var messages = result["M"] as JArray;
if (messages != null)
{
connection.MessageId = (string)result["C"];
foreach (JToken message in (IEnumerable<JToken>)messages)
{
connection.OnReceived(message);
}
if ((int?)result["S"] == 1)
{
_initializationHandler.InitReceived();
}
}
}
catch (Exception ex)
{
connection.OnError(ex);
}
return shouldReconnect;
}
示例4: Send
public Task Send(IConnection connection, string data, string connectionData)
{
if (connection == null)
{
throw new ArgumentNullException("connection");
}
string url = connection.Url + "send";
string customQueryString = String.IsNullOrEmpty(connection.QueryString) ? String.Empty : "&" + connection.QueryString;
url += String.Format(CultureInfo.InvariantCulture,
_sendQueryString,
_transport,
connection.Protocol,
connectionData,
Uri.EscapeDataString(connection.ConnectionToken),
customQueryString);
var postData = new Dictionary<string, string> {
{ "data", data }
};
return _httpClient.Post(url, connection.PrepareRequest, postData, isLongRunning: false)
.Then(response => response.ReadAsString())
.Then(raw =>
{
if (!String.IsNullOrEmpty(raw))
{
connection.Trace(TraceLevels.Messages, "OnMessage({0})", raw);
connection.OnReceived(connection.JsonDeserializeObject<JObject>(raw));
}
})
.Catch(connection.OnError);
}