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 |
} |