Voilà.
j essaye de faire une DeepCopy (par reflexion) d'une classe qui possède un tableau multidimensionel de type générique.
Déclarer ainsi :
Le problème c est que ma methode copie la reference du tableau :-( et non la valeur des elements à l'interieure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part protected T[,] m_Array;
Pourriez vous m'aider a corriger ma methode de copie ?
merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 private static object Clone(object vObj) { if (vObj.GetType().IsValueType || vObj.GetType() == Type.GetType("System.String")) return vObj; else { object newObject = Activator.CreateInstance(vObj.GetType()); //copy all fields foreach (FieldInfo Item in newObject.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public)) { if (Item.GetValue(vObj) != null) { if (Item.GetType().GetInterface("ICloneable") != null) { ICloneable IClone = (ICloneable)Item.GetValue(vObj); Item.SetValue(newObject, IClone.Clone()); } else Item.SetValueD(newObject, Item.GetValue(vObj)); //Item.SetValue(newObject, Clone(Item.GetValue(vObj))); } } return newObject; } }
Partager