La semaine dernière, j'ai passé une bonne partie du temps à travailler sur la sérialisation. Pendant cette période, j'ai trouvé de nombreux exemples utilisant soit le BinaryFormatter, soit le XmlSerializer. Malheureusement, je n'ai pas trouvé d'exemples détaillant de manière exhaustive les différences entre les deux.
La genèse de ma curiosité réside dans la raison pour laquelle le BinaryFormatter est capable de désérialiser directement vers une interface alors que le XmlSerializer ne l'est pas. Jon Skeet dans une réponse à " coulage vers plusieurs (types inconnus) au moment de l'exécution "fournit un exemple de sérialisation binaire directe vers une interface. Stan R. m'a fourni les moyens d'atteindre mon objectif en utilisant le XmlSerializer dans sa réponse à la question " Désérialisation des objets XML vers l'interface ."
Au-delà de l'évidence que le BinaryFormatter utilise la sérialisation binaire tandis que le XmlSerializer utilise XML, j'aimerais mieux comprendre les différences fondamentales. Quand utiliser l'un ou l'autre et les avantages et inconvénients de chacun.