Глубокое клонирование в Compact Framework

Возможно ли глубокое клонирование объекта в компактной структуре? Я надеялся использовать IClonable и memberwiseclone(), однако это только поверхностное копирование.

Любые идеи о том, как сделать это, пожалуйста, используя C# 2.0?

Большое спасибо,

Моррис

1 ответ

Решение

Я реализовал глубокую копию объекта, сделав мои объекты сериализуемыми [Serializable()] и используя следующий метод.

public static ObjectType CopyObject<ObjectType>(ObjectType oObject)
{
  XmlSerializer oSeializer = null;

  // Creates the serializer
  oSeializer = new XmlSerializer(oObject.GetType());

  //Use the stream
  using (MemoryStream oStream = new MemoryStream())
  {
    // Serialize the object
    oSeializer.Serialize(oStream, oObject);

    // Set the strem position
    oStream.Position = 0;

    // Return the object
    return (ObjectType)oSeializer.Deserialize(oStream);
  }
}
Другие вопросы по тегам