protected IAsyncResult MakeRequestImpl <T>(HttpWebRequest request, Action <T, IGSPServiceResponse> action, bool lockClient, Object entity = null) where T : class { IAsyncResult result = null; if (lockClient) { GSPApplicationService.Current.AppState.EnqueueBusy(); } if (entity != null) { request.ContentType = "application/json"; request.BeginGetRequestStream(ar => { try { var webRequest = ar.AsyncState as HttpWebRequest; var stream = webRequest.EndGetRequestStream(ar); var data = _json.Serialize(entity, typeof(T)); var writer = new StreamWriter(stream); writer.Write(data); writer.Flush(); writer.Close(); result = MakeServerCall(webRequest, action, lockClient); } catch (Exception ex) { throw new Exception("Exception in anonymous callback: GSPServiceBase.MakeRequestImpl<T>.BeginGetRequestStream(X). See inner exception for details.", ex); } }, request); } else { result = MakeServerCall(request, action, lockClient); } return(result); }
public void SimpleSerializationTest() { var person = new Person { Name = "John Doe", Age = 25, Hobbies = { "Reading", "Travelling" } }; var serializer = new JsonDotNetSerializer(new TestTranslatorMapping()); string json; using (var stream = new MemoryStream()) { serializer.Serialize <Person>(stream, person); json = Encoding.UTF8.GetString(stream.ToArray()); } using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(json))) { var copy = serializer.Deserialize <Person>(stream); Assert.True(person.IsSameAs(copy)); } }