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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
protected T[,] m_Array;
Le problème c est que ma methode copie la reference du tableau :-( et non la valeur des elements à l'interieure.

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;
            }
        }