protected override void WriteFile(HttpResponseBase response) { var collection = new PlacemarkCollection(); collection.Document = (List <Placemark>)DataSource; var serialized = Serialize(FileDownloadName, collection); if (HasPreamble) { var preamble = this.ContentEncoding.GetPreamble(); response.OutputStream.Write(preamble, 0, preamble.Length); } //XmlDocument doc = new XmlDocument(); //doc.WriteTo(serialized); //var streambuffer = ContentEncoding.GetBytes(doc.OuterXml); var streambuffer = File.ReadAllBytes(this.TempPath); response.OutputStream.Write(streambuffer, 0, streambuffer.Length); if (File.Exists(this.TempPath)) { File.Delete(this.TempPath); } }
private XmlWriter Serialize(string fileName, PlacemarkCollection placemarks) { if (File.Exists(this.TempPath)) { File.Delete(this.TempPath); } var serializer = new XmlSerializer(typeof(PlacemarkCollection), KML_NAME_SPACE); using (var stream = new FileStream(this.TempPath, FileMode.Create)) { using (var writer = new XmlTextWriter(stream, Encoding.Unicode)) { var namespaces = new XmlSerializerNamespaces(); namespaces.Add(string.Empty, KML_NAME_SPACE); serializer.Serialize(writer, placemarks, namespaces); return(writer); } } }