public static string ToXml(this object obj, XmlWriterSettings xws) { if (obj == null) { return(null); } StringBuilder xmlString = new StringBuilder(); using (XmlWriter xtw = XmlTextWriter.Create(xmlString, xws ?? new XmlWriterSettings())) { ChoNullNSXmlSerializer serializer = new ChoNullNSXmlSerializer(obj.GetType()); serializer.Serialize(xtw, obj); xtw.Flush(); return(xmlString.ToString()); } //using (MemoryStream ms = new MemoryStream()) //{ // XmlSerializer serializer = new XmlSerializer(obj.GetType()); // serializer.Serialize(ms, obj); // ms.Seek(0, SeekOrigin.Begin); // using (StreamReader sr = new StreamReader(ms)) // { // // return the formatted string to caller // return sr.ReadToEnd(); // } //} }
public void WriteXml(System.Xml.XmlWriter writer) { try { if (Count > 0) { if (_isMixedCollection) { writer.WriteAttributeString("type", "MixedCollection"); for (int index = 0; index < Count; index++) { writer.WriteStartElement("Item"); writer.WriteAttributeString("type", this[index].GetType().AssemblyQualifiedName); ChoNullNSXmlSerializer xmlSerializer = new ChoNullNSXmlSerializer(this[index].GetType()); xmlSerializer.Serialize(writer, this[index]); writer.WriteEndElement(); } } else { writer.WriteAttributeString("type", this[0].GetType().AssemblyQualifiedName); ChoNullNSXmlSerializer xmlSerializer = new ChoNullNSXmlSerializer(this[0].GetType()); for (int index = 0; index < Count; index++) { xmlSerializer.Serialize(writer, this[index]); } } } } catch (Exception) { //ChoStreamProfile.WriteLine(ChoReservedFileName.SerializationIssues.ToString(), ChoApplicationException.ToString(ex)); throw; } }
public static object XmlDeserialize(string path, Type type, string xmlString, XmlReaderSettings xrs = null) { ChoGuard.ArgumentNotNullOrEmpty(path, "Path"); using (StreamReader sr = new StreamReader(path)) { using (XmlReader xtw = XmlTextReader.Create(sr, xrs ?? new XmlReaderSettings())) { ChoNullNSXmlSerializer serializer = new ChoNullNSXmlSerializer(type); return(serializer.Deserialize(xtw)); } } }
public static string XmlSerialize(object target, XmlWriterSettings xws = null) { ChoGuard.ArgumentNotNull(target, "Target"); StringBuilder xmlString = new StringBuilder(); using (XmlWriter xtw = XmlTextWriter.Create(xmlString, xws ?? new XmlWriterSettings())) { ChoNullNSXmlSerializer serializer = new ChoNullNSXmlSerializer(target.GetType()); serializer.Serialize(xtw, target); xtw.Flush(); return(xmlString.ToString()); } }
public static string ToNullNSXml(this object obj, XmlWriterSettings xws, XmlAttributeOverrides xmlAttributeOverrides = null) { if (obj == null) { return(null); } StringBuilder xmlString = new StringBuilder(); using (XmlWriter xtw = XmlTextWriter.Create(xmlString, xws ?? _xws)) { ChoNullNSXmlSerializer serializer = xmlAttributeOverrides != null ? new ChoNullNSXmlSerializer(obj.GetType(), xmlAttributeOverrides) : new ChoNullNSXmlSerializer(obj.GetType()); serializer.Serialize(xtw, obj); xtw.Flush(); return(xmlString.ToString()); } }
public virtual void WriteXml(XmlWriter writer) { writer.WriteStartElement(DefaultName); object value = null; foreach (string key in this.Keys) { if (key == "Value") { value = this[key]; } else if (key == DefaultName) { ((ChoDynamicObject)this[key]).WriteXml(writer); } else { writer.WriteAttributeString(key, this[key].ToNString()); } } if (value != null) { if (value is ChoDynamicObject) { ((ChoDynamicObject)value).WriteXml(writer); } else { if (value.GetType().IsSimple()) { writer.WriteString(value.ToNString()); } else { ChoNullNSXmlSerializer valueSerializer = new ChoNullNSXmlSerializer(value.GetType()); valueSerializer.Serialize(writer, value); } } } writer.WriteEndElement(); }
public static string ToNullNSXmlWithType(this object obj, ChoTypeNameSpecifier?typeNameSpecifier = null, XmlWriterSettings xws = null, XmlAttributeOverrides xmlAttributeOverrides = null) { if (obj == null) { return(null); } StringBuilder xmlString = new StringBuilder(); using (XmlWriter xtw = XmlTextWriter.Create(xmlString, xws ?? _xws)) { ChoNullNSXmlSerializer serializer = xmlAttributeOverrides != null ? new ChoNullNSXmlSerializer(obj.GetType(), xmlAttributeOverrides) : new ChoNullNSXmlSerializer(obj.GetType()); serializer.Serialize(xtw, obj); xtw.Flush(); } XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlString.ToString()); xmlDoc.DocumentElement.Attributes.Append(xmlDoc.CreateAttribute("_type_")).Value = typeNameSpecifier != null?obj.GetType().GetName(typeNameSpecifier.Value) : obj.GetTypeName(); return(xmlDoc.InnerXml); }