Logning af tidligere objekter
Jeg har et program som skal logge tidligere stadier i programforløbet.Der kommer nye ændringer i objekternes tilstand konstant og det skal så være muligt at gå tilbage til et tidligere tidspunkt og se hvad objektets tilstand var.
Lige pt. har jeg implementeret det ved hjælp af en DeepClone funktion som anvender MemoryStream():
public static object DeepClone(object obj)
{
object objResult = null;
using (var ms = new MemoryStream())
{
var bf = new BinaryFormatter();
bf.Serialize(ms, obj);
ms.Position = 0;
objResult = bf.Deserialize(ms);
}
return objResult;
}
Det virker som det skal, men jeg oplever problemer med performance. Da ændringerne af objekterne sker ca hver 100ms hvorefter der sker en kloning.
Jeg vil gerne vide om der er nogen der har nogle alternativer til hvordan det kan gøres bedre og nemmere? Programmet er bygget op såldedes at hver gang objekterne ændrer sig tilføjes en linie i et ListView. Når der klikkes på den enkelte linie vises objektet som det så ud på DET tidspunkt.
Håber nogen kan hjælpe og forstår min problemstilling..