/// <summary> /// Returns string representation of item. /// </summary> /// <returns></returns> public string ToDidl() { ArrayList properties = new ArrayList(); StringBuilder sb = null; StringWriter sw = null; MemoryStream ms = null; XmlTextWriter xmlWriter = null; if (MediaObject.ENCODE_UTF8) { ms = new MemoryStream(MediaObject.XML_BUFFER_SIZE); xmlWriter = new XmlTextWriter(ms, System.Text.Encoding.UTF8); } else { sb = new StringBuilder(MediaObject.XML_BUFFER_SIZE); sw = new StringWriter(sb); xmlWriter = new XmlTextWriter(sw); } xmlWriter.Formatting = System.Xml.Formatting.Indented; xmlWriter.Namespaces = true; xmlWriter.WriteStartDocument(); MediaObject.WriteResponseHeader(xmlWriter); ToXmlData _d = (ToXmlData)MediaObject.ToXmlData_AllRecurse.Clone(); _d.IsRecursive = false; this.ToXml(ToXmlFormatter.DefaultFormatter, _d, xmlWriter); xmlWriter.WriteEndDocument(); xmlWriter.Flush(); string xmlResult; if (MediaObject.ENCODE_UTF8) { int len = (int)ms.ToArray().Length - MediaObject.TruncateLength_UTF8; UTF8Encoding utf8e = new UTF8Encoding(false, true); xmlResult = utf8e.GetString(ms.ToArray(), MediaObject.TruncateLength_UTF8, len); } else { xmlResult = sb.ToString(); } xmlWriter.Close(); int crpos = xmlResult.IndexOf("\r\n"); crpos = xmlResult.IndexOf('<', crpos); string trunc = xmlResult.Remove(0, crpos); return(trunc); }