Author: kostat
Date: 2007-06-21 14:16:26 -0400 (Thu, 21 Jun 2007)
New Revision: 80504
Modified:
trunk/mcs/class/System.Web.Extensions/System.Web.Script.Serialization/JavaScriptSerializer.cs
Log:
implemented JavaScriptConverter..Deserialize functionality
Modified:
trunk/mcs/class/System.Web.Extensions/System.Web.Script.Serialization/JavaScriptSerializer.cs
===================================================================
---
trunk/mcs/class/System.Web.Extensions/System.Web.Script.Serialization/JavaScriptSerializer.cs
2007-06-21 18:16:12 UTC (rev 80503)
+++
trunk/mcs/class/System.Web.Extensions/System.Web.Script.Serialization/JavaScriptSerializer.cs
2007-06-21 18:16:26 UTC (rev 80504)
@@ -80,8 +80,16 @@
return null;
if (obj is IDictionary<string, object>) {
- if (type == null && !(obj is Dictionary<string,
object>))
+ if (type == null)
obj = Evaluate ((IDictionary<string,
object>) obj);
+ else {
+ JavaScriptConverter converter =
GetConverter (type);
+ if (converter != null)
+ return converter.Deserialize (
+ Evaluate
((IDictionary<string, object>) obj),
+ type, this);
+ }
+
return Deserialize ((IDictionary<string,
object>) obj, type);
}
if (obj is IEnumerable<object>)
@@ -127,7 +135,9 @@
return list;
}
- static object Evaluate (IDictionary<string, object> dict) {
+ static IDictionary<string, object> Evaluate
(IDictionary<string, object> dict) {
+ if (dict is Dictionary<string, object>)
+ return dict;
Dictionary<string, object> d = new Dictionary<string,
object> (StringComparer.Ordinal);
foreach (KeyValuePair<string, object> entry in dict)
d.Add (entry.Key, Evaluate(entry.Value));
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches