À quelle fréquence devrait la méthode GetObjectData de chaque objet appelé pendant la sérialisation personnalisée?

StackOverflow https://stackoverflow.com/questions/3865297

Question

Je sérialisation les données dans mon application à l'aide sérialisation personnalisé dire chacune des classes, je suis stockage a l'attribut [Serializable] et met en œuvre ISerializable. Le graphique d'objet sérialisé est relativement complexe avec beaucoup de références croisées entre les objets / classes. La sérialisation fonctionne , mais il est assez lent. : (

En mettant un point d'arrêt dans chaque méthode de GetObjectData de classe concernée, j'ai trouvé que je reçois beaucoup, beaucoup plus de coups que j'ai des objets.

Je suis confus - ma compréhension du cadre de sérialisation est qu'il stockerait chaque objet une seule fois, même si le graphe d'objet contenait plusieurs références à elle. Je suppose que cela signifiait devrait être appelé la méthode de GetObjectData de chaque objet une seule fois lors de la sauvegarde. Ai-je tort?

Et si oui, est-ce que je peux faire dans cette approche pour réduire le nombre d'appels à mes cours de méthodes de GetObjectData?

Merci.

Était-ce utile?

La solution

Le MSDN docs faire ne garantit pas seulement 1 appel par instance d'objet.

Avez-vous essayé cela avec différents formatteurs? Il y a des commentaires

scroll top