6RatsMorts
Messages postés7Date d'inscriptionmercredi 26 mars 2003StatutMembreDernière intervention 2 mai 2012
-
2 mai 2012 à 17:02
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 2013
-
2 mai 2012 à 17:39
Bonjour,
Jai le code suivant qui définit trois classe d'objet :
using System;
using System.Collections.Generic;
using System.Text;
namespace WindowsFormsApplication1
{
public class Container1 : ICollection<Container2>
{
List<Container2> list = new List<Container2>();
public Container1()
{
}
public Container2 this[int index]
{
get
{
return list[index];
}
}
#region ICollection<ChildObject> Membres
public void Add(Container2 item)
{
list.Add(item);
}
public void Clear()
{
list.Clear();
}
public bool Contains(Container2 item)
{
return list.Contains(item);
}
public void CopyTo(Container2[] array, int arrayIndex)
{
list.CopyTo(array, arrayIndex);
}
public int Count
{
get { return list.Count; }
}
public bool IsReadOnly
{
get { return false; }
}
public bool Remove(Container2 item)
{
return list.Remove(item);
}
#endregion
#region IEnumerable<ChildObject> Membres
public IEnumerator<Container2> GetEnumerator()
{
return list.GetEnumerator();
}
#endregion
#region IEnumerable Membres
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return list.GetEnumerator();
}
#endregion
}
public class Container2 : ICollection<ChildObject>
{
List<ChildObject> list = new List<ChildObject>();
public Container2()
{
}
public ChildObject this[int index]
{
get
{
return list[index];
}
}
#region ICollection<ChildObject> Membres
public void Add(ChildObject item)
{
list.Add(item);
}
public void Clear()
{
list.Clear();
}
public bool Contains(ChildObject item)
{
return list.Contains(item);
}
public void CopyTo(ChildObject[] array, int arrayIndex)
{
list.CopyTo(array,arrayIndex);
}
public int Count
{
get { return list.Count; }
}
public bool IsReadOnly
{
get { return false; }
}
public bool Remove(ChildObject item)
{
return list.Remove(item);
}
#endregion
#region IEnumerable<ChildObject> Membres
public IEnumerator<ChildObject> GetEnumerator()
{
return list.GetEnumerator();
}
#endregion
#region IEnumerable Membres
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return list.GetEnumerator();
}
#endregion
}
public class ChildObject
{
public string Name;
public int Value;
public ChildObject()
{
}
}
}
Je désire sérialiser une instance d'objet "Container1" à l'aide d'un "XmlSerializer" comme suit :
FileStream fs = new FileStream("C:\\serializeContainers.xml", FileMode.Create);
XmlSerializer x = new XmlSerializer(typeof(Container1));
x.Serialize(fs, o1);
fs.Close();
Une erreur que je ne comprend pas se produit se produit :
"Impossible de générer une classe temporaire (result=1).
error CS0136: Une variable locale nommée 'e' ne peut pas être déclarée dans cette portée, car elle modifierait la signification de 'e', déjà utilisée dans une portée 'parent ou en cours' pour désigner autre chose"
Pourquoi ca ne marche pas? Un bug dans le framework? une solution?
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 2 mai 2012 à 17:39
Salut,
ça, ça me parle pas franchement :
"Impossible de générer une classe temporaire"
Par contre pour le reste de l'erreur cela semble clairement indiquer que tu définies 2 variables avec un même nom (au hasard un paramètre de type EventArgs nommé e et une variable locale e dans le corps de ladite fonction). Par contre ce serait plutôt du côté du code que tu n'as pas posté, donc je peux pas confirmer.