+2003-01-26 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlSerializer.cs : some fix handling xml node object more correct.
+
2003-01-16 Ajay kumar Dwivedi <adwiv@yahoo.com>
* XmlSerializer.cs: Array serialization for 1D arrays works
* TypeTranslator: Added for translations`
private void SerializeBuiltIn (XmlWriter writer, object o)
{
- TypeData td = TypeTranslator.GetTypeData (o.GetType ());
- writer.WriteStartElement (td.ElementName);
- WriteBuiltinValue(writer,o);
- writer.WriteEndElement();
+ if (o is XmlNode) {
+ XmlNode n = (XmlNode) o;
+ XmlNodeReader nrdr = new XmlNodeReader (n);
+ nrdr.Read ();
+ if (nrdr.NodeType == XmlNodeType.XmlDeclaration)
+ nrdr.Read ();
+ do {
+ writer.WriteNode (nrdr, false);
+ } while (nrdr.Read ());
+ }
+ else {
+ TypeData td = TypeTranslator.GetTypeData (o.GetType ());
+ writer.WriteStartElement (td.ElementName);
+ WriteBuiltinValue(writer,o);
+ writer.WriteEndElement();
+ }
}
private void WriteNilAttribute(XmlWriter writer)
FillICollectionType (type);
return;
}
+// if (type.GetInterface ("IDictionary") == typeof (System.Collections.IDictionary)) {
+// throw new Exception ("Can't Serialize Type " + type.Name + " since it implements IDictionary");
+// }
if (type.GetInterface ("IEnumerable") == typeof (System.Collections.IEnumerable)) {
//FillIEnumerableType(type);
//return;
return false;
if (type.IsValueType || type == typeof (string) || type.IsPrimitive)
return true;
- if (type == typeof (DateTime) || type == typeof (XmlNode))
+ if (type == typeof (DateTime) || type == typeof (XmlNode) || type.IsSubclassOf (typeof (XmlNode)))
return true;
return false;