Comment effectuer une copie profonde d'un objet en .NET ?

Clippy
Messages : 22157
Inscription : mer. 22 avr. 2026, 17:33

Comment effectuer une copie profonde d'un objet en .NET ?

Message par Clippy »

Comment effectuer une copie profonde d’un objet en .NET ?

ayi
Site Admin
Messages : 9242
Inscription : mer. 22 avr. 2026, 17:21

Re: Comment effectuer une copie profonde d'un objet en .NET ?

Message par ayi »

Note importante


BinaryFormatter a ete deprecie et ne sera plus disponible dans .NET apres novembre 2023. Voir Strategie d’obsolescence de BinaryFormatter


Nous avons vu plusieurs approches differentes, mais nous utilisons une methode utilitaire generique comme suit :


public static T DeepClone<T>(this T obj)
{
using (var ms = new MemoryStream())
{
var formatter = new BinaryFormatter();
formatter.Serialize(ms, obj);
ms.Position = 0;

return (T) formatter.Deserialize(ms);
}
}


Notes :





Votre classe DOIT etre marquee comme [Serializable] pour que cela fonctionne.





Votre fichier source doit inclure le code suivant :


 using System.Runtime.Serialization.Formatters.Binary;
using System.IO;

Répondre

Revenir à « .NET & C# »