Author: atsushi
Date: 2008-01-23 23:56:50 -0500 (Wed, 23 Jan 2008)
New Revision: 93764

Modified:
   
trunk/olive/class/System.ServiceModel.Web/System.Runtime.Serialization.Json/ChangeLog
   
trunk/olive/class/System.ServiceModel.Web/System.Runtime.Serialization.Json/DataContractJsonSerializer.cs
Log:
2008-01-24  Atsushi Enomoto  <[EMAIL PROTECTED]>

        * DataContractJsonSerializer.cs : Uri and Guid are serialized as
          string. XmlQualifiedName is serialized as local:ns.



Modified: 
trunk/olive/class/System.ServiceModel.Web/System.Runtime.Serialization.Json/ChangeLog
===================================================================
--- 
trunk/olive/class/System.ServiceModel.Web/System.Runtime.Serialization.Json/ChangeLog
       2008-01-24 03:55:40 UTC (rev 93763)
+++ 
trunk/olive/class/System.ServiceModel.Web/System.Runtime.Serialization.Json/ChangeLog
       2008-01-24 04:56:50 UTC (rev 93764)
@@ -1,3 +1,8 @@
+2008-01-24  Atsushi Enomoto  <[EMAIL PROTECTED]>
+
+       * DataContractJsonSerializer.cs : Uri and Guid are serialized as
+         string. XmlQualifiedName is serialized as local:ns.
+
 2008-01-22  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
        * JsonWriter.cs : allow __type attribute. It required couple of

Modified: 
trunk/olive/class/System.ServiceModel.Web/System.Runtime.Serialization.Json/DataContractJsonSerializer.cs
===================================================================
--- 
trunk/olive/class/System.ServiceModel.Web/System.Runtime.Serialization.Json/DataContractJsonSerializer.cs
   2008-01-24 03:55:40 UTC (rev 93763)
+++ 
trunk/olive/class/System.ServiceModel.Web/System.Runtime.Serialization.Json/DataContractJsonSerializer.cs
   2008-01-24 04:56:50 UTC (rev 93764)
@@ -275,7 +275,7 @@
 
                        switch (Type.GetTypeCode (graph.GetType ())) {
                        case TypeCode.String:
-                               writer.WriteString ((string) graph);
+                               writer.WriteString (graph.ToString ());
                                break;
                        case TypeCode.Single:
                        case TypeCode.Double:
@@ -305,7 +305,16 @@
                                        writer.WriteString ("false");
                                break;
                        default:
-                               if (graph is ICollection) { // array
+                               if (graph is Guid) {
+                                       goto case TypeCode.String;
+                               } else if (graph is Uri) {
+                                       goto case TypeCode.String;
+                               } else if (graph is XmlQualifiedName) {
+                                       XmlQualifiedName qn = 
(XmlQualifiedName) graph;
+                                       writer.WriteString (qn.Name);
+                                       writer.WriteString (":");
+                                       writer.WriteString (qn.Namespace);
+                               } else if (graph is ICollection) { // array
                                        writer.WriteAttributeString ("type", 
"array");
                                        foreach (object o in (ICollection) 
graph) {
                                                writer.WriteStartElement 
("item");

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to