2009-05-04 9 views
3

J'essaie de sérialiser un type en utilisant le DataContractSerializer et je reçois l'exception ci-dessous. Ce n'est pas pour un service SOA, mais j'aimerais quand même utiliser DataContractSerializer si possible. J'utilise .Net 3.5 SP1.Pourquoi ne puis-je pas sérialiser un objet à l'aide de DataContractSerializer?

type 'System.DelegateSerializationHolder + DelegateEntry' avec le nom de contrat de données 'DelegateSerializationHolder.DelegateEntry: http://schemas.datacontract.org/2004/07/System' ne devrait. Ajoutez tous les types non connus statiquement à la liste des types connus - par exemple, en utilisant l'attribut KnownTypeAttribute ou par en les ajoutant à la liste des types connus passés à DataContractSerializer.

Répondre

4

Pouvez-vous publier votre définition de cours?

Il semble que vous essayiez de sérialiser une classe qui a un champ de type délégué, ce qui, je suis sûr, va provoquer l'étouffement du sérialiseur.

Avez-vous décoré votre classe avec les attributs DataContract/DataMember? Dans 3.5 SP1, il existe un comportement par défaut pour le sérialiseur qui sérialise tout le public dans une classe par défaut s'il n'est pas marqué avec ces attributs. Peut-être que vous devriez marquer explicitement chaque propriété qui doit être sérialisée avec un attribut DataMember et omettre celles qui ne devraient pas l'être. À part cela, nous aurions besoin de voir votre définition de classe pour plus d'aide.

Questions connexes