À quelle fréquence devrait la méthode GetObjectData de chaque objet appelé pendant la sérialisation personnalisée?
-
28-09-2019 - |
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.
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