/// <summary> /// Запрос на выполнение json-rpc метода /// </summary> /// <param name="stream"></param> /// <param name="returnType"></param> /// <param name="request"></param> /// <returns></returns> /// <exception cref="JsonException">ошибочный ответ при приравнивание к типу</exception> public static object Invoke(Stream stream, Type returnType, IJsonRequest request) { if (returnType == null) { throw new ArgumentNullException("returnType"); } if (stream == null) { throw new ArgumentNullException("stream"); } if (request == null) { throw new ArgumentNullException("request"); } var streamer = new Streamer(stream); // send request streamer.WriteLine(request.ToString()); // get response var response = streamer.ReadLine(TimeSpan.MaxValue); while (response == "") { response = streamer.ReadLine(TimeSpan.MaxValue); } return((new ResponseParser(response, returnType)).Result()); }
/// <summary> /// Send response for json-rpc request, getting from GetRequet() method /// </summary> /// <param name="response"></param> public void SendResponse(string response) { if (IsActive) { mStreamer.WriteLine(response); } }