Example #1
0
        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));
            }
        }