Alors, je travaille avec l'assemblage suivant, qui a les éléments suivants définis (assez inoffensifs):
public class QueryDefinition
{
private List TheCurrentFilters = null;
public List CurrentFilters
{
set { TheCurrentFilters = value; }
get { return TheCurrentFilters; }
}
// autres codes
public class QueryFilter
{
// les variables membres sont : sept chaînes publiques et deux entiers publics
public override string ToString()
{
return FilterText;
}
}
}
Dans un autre assemblage, nous avons un UserControl :
public partial class QueryWizard : UserControl
{
private List TheCurrentFilters = null;
public List CurrentFilters
{
set { TheCurrentFilters = value; }
get { return TheCurrentFilters; }
}
// autres codes
}
Code intéressant, mais c'est avec ça que je dois travailler.
Quoi qu'il en soit, si je passe à un autre projet (qui référence ce UserControl), crée un formulaire, puis ajoute le contrôle dans le formulaire, je reçois cette erreur :
'System.Runtime.Serialization.SerializationException: Type QueryDefinition+QueryFilter' in Assembly ... is not marked as serializable.'
Je n'utilise pas réellement de code de sérialisation, donc quelle partie de cette liste de QueryFilter est la raison de la SerializationException ?
J'ai utilisé la balise [Serializable], pour m'en débarrasser. Mais récemment, nous reconstruisions des projets (mise à niveau de Visual WebGUI) et maintenant je rencontre le problème "impossible de charger le type requis pour la désérialisation". Au lieu de résoudre ce problème, j'ai décidé d'essayer de comprendre pourquoi nous avons besoin des balises de sérialisation en premier lieu ! Merci.