Quais são as diferenças entre o XmlSerializer e BinaryFormatter

Passei uma boa parte do tempo na semana passada trabalhando na serialização. Durante esse tempo, encontrei muitos exemplos utilizando o BinaryFormatter ou o XmlSerializer. Infelizmente, o que eu não encontrei foram exemplos detalhados detalhando as diferenças entre os dois.

A gênese da minha curiosidade reside no motivo pelo qual o BinaryFormatter é capaz de desserializar diretamente para uma interface enquanto o XmlSerializer não é.Jon Skeet em uma resposta para "conversão para múltiplos (tipos desconhecidos) em tempo de execução"fornece um exemplo de serialização binária direta para uma interface.Stan R. forneceu-me os meios para realizar meu objetivo usando o XmlSerializer em sua resposta para "Deserialização de Objetos XML para Interface"

Além do óbvio do BinaryFormatter utiliza a serialização binária enquanto o XmlSerializer usa XML eu gostaria de entender mais completamente as diferenças fundamentais. Quando usar um ou outro e os prós e contras de cada um.

questionAnswers(5)

yourAnswerToTheQuestion