[usercontrol] Propriété de type dictionary non serialisable --> error au design à l'utilisation
Hello,
Apparemment, si on met une propriété P de type Dictionary dans un UC (usercontrol), si on change une propriété (une autre!!) de ce UC dans un projet qui l'utilise pendant le design, on obtient une erreur lors de la prochaine tentative de build disant que la génération du code pour la propriété P a échouté car ce n'est pas serialisable...
Ci-dessous, le message complet :
Citation:
Code generation for property 'xxxxx' failde. Error was: 'Type 'System.Windows.Forms.UserControl' in Assembly 'System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.'
Vu que la propriété en question est de type Dictionary et que qu'un dictionnaire n'est pas sérialisable, j'en déduis que le problème est là.
Que faire du coup ? Quelqu'un aurait une idée ?
Et si ce n'est pas clair, faut le dire aussi.
Maintenant que la question est posée, je vais fouiller la toile.
C'est résolu mais j'aimerais qu'on m'explique
Hello,
En fouillant et en y allant à tâtons, j'ai résolu le problème en ajoutant l'attribut <DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> à la propriété fautive.
Le designer ne râle plus. Ce qui est logique puisque vu le nom de l'attribut, on peut s'attendre à ce que cette propriété lui soit masquée pour la sérialisation et donc il ne butte plus dessus.
Quelqu'un aurait un lien sur le fonctionnement du designer ? J'aimerais comprendre ce qu'il se trame en arrière-plan...