Statistics
| Branch: | Revision:

root / trunk / hammock / src / net35 / Hammock / Serialization / HammockJavaScriptSerializer.cs @ 0eea575a

History | View | Annotate | Download (1.5 kB)

1
using System;
2
using System.Collections.Generic;
3
using System.Web.Script.Serialization;
4

    
5
namespace Hammock.Serialization
6
{
7
#if !SILVERLIGHT
8
    [Serializable]
9
#endif
10
    public class HammockJavaScriptSerializer : Utf8Serializer, ISerializer, IDeserializer
11
    {
12
        private readonly JavaScriptSerializer _serializer;
13

    
14
        public HammockJavaScriptSerializer(JavaScriptTypeResolver resolver)
15
        {
16
            _serializer = new JavaScriptSerializer(resolver);
17
        }
18

    
19
        public HammockJavaScriptSerializer(JavaScriptTypeResolver resolver, IEnumerable<JavaScriptConverter> converters)
20
        {
21
            _serializer = new JavaScriptSerializer(resolver);
22
            _serializer.RegisterConverters(converters);
23
        }
24

    
25
        public HammockJavaScriptSerializer(IEnumerable<JavaScriptConverter> converters)
26
        {
27
            _serializer = new JavaScriptSerializer();
28
            _serializer.RegisterConverters(converters);
29
        }
30

    
31
        public virtual string Serialize(object instance, Type type)
32
        {
33
            return _serializer.Serialize(instance);
34
        }
35

    
36
        public virtual string ContentType
37
        {
38
            get { return "application/json"; }
39
        }
40

    
41
        public virtual object Deserialize(RestResponse response, Type type)
42
        {
43
            return _serializer.DeserializeObject(response.Content);
44
        }
45

    
46
        public virtual T Deserialize<T>(RestResponse<T> response)
47
        {
48
            return _serializer.Deserialize<T>(response.Content);
49
        }
50
    }
51
}