Иллюстрированный самоучитель по VB.NET

       

Применение сериализации при клонировании объектов


У сериализации имеется и такое нетривиальное применение, как клонирование сложных объектов. Фокус заключается в том, чтобы записать объект в поток памяти MemoryStream и затем восстановить его (потоки MemoryStream позволяют работать с данными в быстрой оперативной памяти по аналогии с тем, как поток FileStream работает с файлом на диске). Ниже приведен типичный код клониро-вания:

Public Function Clone()As Object Implements ICloneable.Clone

Dim myBinaryFormatter As New Formatters.Binary.BinaryFormatter()

Try

Seriali'zeToBinary() mSTream.Position = 0

Return myBinaryFormatter.Deserialize(mSTream) Finally

mSTream.Close()

End Try

End Function

Sub SerializeToBinary()

Dim myBinaryFormatter As New Formatters.Binary.BinaryFormatter()

Try

mSTream = New MemoryStream()

myBinaryFormatter.Serialize(mSTream.Me)

Catch

Throw

End Try

End Sub



Содержание раздела