Impossible de créer le composant .. Le type n'est pas marqué comme sérialisable

Je suis de la création d'un WinForms de contrôle de l'utilisateur à l'aide de Visual C# 2008 Express Edition.

Tout allait bien jusqu'à ce que j'ai trouvé que je pouvais jouer avec un List<> collection de propriété à partir de la fenêtre propriétés. Après avoir essayé de changer la collecte et l'exécution du projet, j'ai commencé à recevoir des erreurs et fait de mon mieux pour tout remettre à l'endroit où il était quand il a été de travail.

Maintenant quand j'essaye et place d'une instance de contrôle sur un formulaire, j'obtiens l'erreur suivante.

Failed to create component 'ColorPicker'.  The error message follows:
'System.Runtime.Serialization.SerializationException: Type 'WindowsFormsApplication1.ColorPicker+ColorData' in Assembly 'Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.
   at System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)
   at System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context)
   at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()
   at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter)
   at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter)
  at System.Runtime.Serialization.Formatt...'

Après avoir écarté cette erreur, j'ai commencer à obtenir l'erreur suivante, généralement à plusieurs reprises jusqu'à ce que je utilisez le Gestionnaire des Tâches pour fermer Visual C# vers le bas.

Code generation for property 'PaletteColors' failed.  Error was: 'Type 'WindowsFormsApplication1.ColorPicker+ColorData' in Assembly 'Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.'

J'ai essayé de repérage mon ColorData classe comme [Serializable] mais alors commencé à avoir d'autres erreurs. Je ne me rappelle pas les détails exacts, mais il n'a pas vraiment d'importance parce que je ne veux pas de ces données sérialisées.

J'ai essayé une nouvelle forme et obtenu la même erreur. J'ai donc créé un tout nouveau projet et copié ma classe de code d'un nouveau contrôle de l'utilisateur, et l'erreur se produit toujours. Quelqu'un peut-il suggérer ce qui pourrait être la cause de cette erreur? Je ne veux pas que cette collection sérialisé.

Voici la collection en question (ce sont des lignes dans mon de contrôle de l'utilisateur--le ColorData classe est imbriquée dans mon de contrôle de l'utilisateur).

public List<ColorData> PaletteColors { get; set; }

public class ColorData
{
    public string Text { get; set; }
    public Color Color { get; set; }

    public ColorData()
    {
        Text = String.Empty;
        Color = Color.White;
    }

    public ColorData(string text, Color color)
    {
        Text = text;
        Color = color;
    }

    public ColorData(KnownColor color)
    {
        Text = Enum.GetName(typeof(KnownColor), color);
        Color = Color.FromKnownColor(color);
    }

    public override string ToString()
    {
        return Text;
    }
}

source d'informationauteur Jonathan Wood