[deepCopy] copie les elements d'un tableau
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:
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:
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;
}
} |