réalisant des copies profondes des objets dans .NET
Cet article relève le défi de créer des copies profondes des objets dans le framework .NET, offrant une solution comparable à la fonctionnalité de copie profonde inhérente de Java.
La solution:
Une méthode d'utilité générique fournit une approche simple de la copie profonde:
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); } }
Considération critique:
Il est crucial de reconnaître que BinaryFormatter
, employé dans cette méthode, est obsolète et prévu pour le retrait de .NET. Explorez des stratégies de copie profonde alternatives pour une compatibilité future.
Détails de l'implémentation:
Pour utiliser cette méthode, assurez-vous que votre classe est marquée de l'attribut [Serializable]
. Inclure les espaces de noms nécessaires:
using System.Runtime.Serialization.Formatters.Binary; using System.IO;
Mécanisme:
Le processus implique deux étapes de clé:
BinaryFormatter
, le stockant dans un flux de mémoire. mises en garde:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!