Глубокое клонирование в 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);
}
}