2009-07-31 5 views
2

La classe simple ci-dessous hérite de HashSet et doit donc implémenter les membres ISerialization (de manière non standard). Je reçois l'exception suivante lorsque je tente de sérialisation désérialisation alors une instance de groupe:Veuillez m'expliquer cette exception SerializationException

Méthode d'essai UtilitiesTests.GroupTest.SerializeTest exception jeté: System.Reflection.TargetInvocationException: Het Doel van een aanroep heeft een uitzondering veroorzaakt. ---> System.Runtime.Serialization.SerializationException: couvercle nameprop est niet gevonden ..

Malheureusement, c'est en néerlandais. Cela signifie que le membre "nameprop" n'a pas pu être trouvé! Qu'est-ce qui ne va pas ??

using System; 
using System.Collections.Generic; 
using System.Runtime.Serialization; 

namespace Grouping 
{ 
    [Serializable] 
    public class Group<T> : HashSet<T> 
    { 
     public Group(string name) 
     { 
      Name = name; 
     } 

     protected Group(){} 

     protected Group(SerializationInfo info, StreamingContext context):base(info,context) 
     { 
      Name = info.GetString("nameprop"); 
     } 

     protected new void GetObjectData(SerializationInfo info,StreamingContext context) 
     { 
      base.GetObjectData(info,context); 
      info.AddValue("nameprop", Name); 
     } 

     public string Name { get; private set; } 
    } 
} 
+0

Si vous devez corriger une erreur, consultez cette note sur http://lifeelement.com. SerializationException Le membre n'a pas été trouvé
http://lifeelement.com/news/serializationexception-member-was-not-found/. –

Répondre

6

Votre méthode GetObjectData est jamais appelé pendant la sérialisation, parce que vous ne remplacez pas la méthode mère - vous l'ombre elle. Vous devriez utiliser override plutôt que new là.

+0

Merci! C'était ça ... Pourriez-vous me diriger vers le message d'erreur anglais afin de rendre cette question plus facile à trouver par d'autres simples comme moi? – Dabblernl

+0

Je ne sais pas car je n'ai pas réellement exécuté le code, seulement regardé :) –

Questions connexes