Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Как можно быстрее всего выполнить сериализацию


Автор: Medved 24.6.2005, 03:55
Сабж.

Быстрее с точки зрения времени написания кода. Чем меньше кода, тем лучше.

Сложность или простота используемых технологий не имеет значение.

Заранее благодарен.

Автор: Naghual 24.6.2005, 10:19
А можно подробнее?
Что за объект? И что подразумевается под Сериализацией?

Автор: Medved 24.6.2005, 12:14
Сериализация - это сохранение значений всех свойств объекта в какое либо хранилище (по моему только в формате XML) (в файл, БД, XML файл, не имеет значения), Чтобы в дальнейшем можно было его десериализовать, т.е. востановить все ранее сохраненные (сериализованные) значения свойств объекта.
Добавлено @ 12:18
Цитата(Naghual @ 24.6.2005, 13:19)
Что за объект?

А какая разница какой объект? Да любой.

Автор: likhobory 24.6.2005, 20:45
Боюсь, без банального перечисления свойств объекта не обойтись...
Все же попробуй конкретизировать задачу.
да, с каким офисным приложением работаешь??

Автор: Medved 25.6.2005, 14:15
ArcGIS, в него встроен VBA. Это не офисное приложение.
Добавлено @ 14:21
Но мне пришлось отказаться от использования VBA, слишком ограниченные возмрожности.

Вот как например эту проблему можно решить на C#:
Код

[C#] 
using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

// This is the class that will be serialized.
public class OrderedItem
{
   public string ItemName;
   public string Description;
   public decimal UnitPrice;
   public int Quantity;
   public decimal LineTotal;
   // A custom method used to calculate price per item.
   public void Calculate()
   {
      LineTotal = UnitPrice * Quantity;
   }
}
 
public class Test{
   public static void Main()
   {
      Test t = new Test();
      // Write a purchase order.
      t.SerializeObject("simple.xml");
   }
 
   private void SerializeObject(string filename)
   {
      Console.WriteLine("Writing With XmlTextWriter");
 
      XmlSerializer serializer = 
      new XmlSerializer(typeof(OrderedItem));
      OrderedItem i = new OrderedItem();
      i.ItemName = "Widget";
      i.Description = "Regular Widget";
      i.Quantity = 10;
      i.UnitPrice = (decimal) 2.30;
      i.Calculate();
      // Create an XmlTextWriter using a FileStream.
      Stream fs = new FileStream(filename, FileMode.Create);
      XmlWriter writer = 
      new XmlTextWriter(fs, Encoding.Unicode);
      // Serialize using the XmlTextWriter.
      serializer.Serialize(writer, i);
      writer.Close();
   }
}


По сути всего одной строчкой:
serializer.Serialize(writer, i);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)