2017-03-16 2 views
2

Supposons que je sérialisé une struct Bond donnée avec un seul champ:Les noms de champs Bond sont-ils utilisés dans la désérialisation?

struct NameBond 
{ 
    1: string name; 
} 

Et puis je renomme le champ dans le fichier .bond (sans changer son ordinal):

struct NameBond 
{ 
    1: string displayName; 
} 

Ne serait-je encore capable de le désérialiser?

Qu'en est-il du nom de la structure? (NameBond dans l'exemple.)

Est-ce que changer cela m'empêcherait de désérialiser?

Répondre

2

Cela dépend du protocole que vous utilisez.

  • Votre modification ne causera aucun problème dans le sérialiseur CompactBinary.
  • Cela peut causer des problèmes avec d'autres protocoles.

Vous pouvez consulter le Bond schema evolution guide, où il est dit:

La prudence devrait être utilisé lors de la modification ou la réutilisation des noms de champ car cela pourrait casser des protocoles basés sur du texte comme SimpleJsonProtocol

Voir aussi this related SO question.