Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1166 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Sérialisation - Spécifier un attribut de classe comme optionnel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Sérialisation - Spécifier un attribut de classe comme optionnel

n°1974332
pinpoy
Posté le 16-03-2010 à 23:03:51  profilanswer
 

Bon-jour(-soir),
le titre est dejà pas mal explicite mais je vais essayer de détailler mon cas.
 
J'ai un fichier qui contient des infos qui ont été sérializées.
 
La classe contenait 3 attributs au moment de la sérialisation, j'ai rajouté un attribut à cette classe.
Je voudrais spécifier qu'il est optionnel, actuellement je me prends un exception.
 
Le but à terme est d'obtenir les 2 versions de l'appli celle dont la classe X contient 3 attributs et celle dont cette même classe contient 4 attributs, et qu'elles aient toutes les deux possibilités de lire les 2 types de fichier sérialisé.
 
    * Application ( 3 attributs) + fichier sérialisé (3 attributs ) => cas classique ca doit marcher sans soucis
    * Application ( 4 attributs) + fichier sérialisé (4 attributs ) => cas classique ca doit marcher sans soucis
    * Application ( 3 attributs) + fichier à  désérialiser (4 attributs ) =>
      - à la sérialisation : fichier généré contient 3 attributs par instance
      - à la dé-sérialisation : le nouvel attribut est ignoré
    * Application ( 4 attributs) + fichier à désérialiser (3 attributs ) =>
      - à la sérialisation : fichier généré contient 4 attributs par instance
      - à la dé-sérialisation : le nouvel attribut est setté à null
 
 
 
Merci d'avance, j'ai parcouru la doc msdn mais j'ai ptet raté quelquechose


Message édité par pinpoy le 16-03-2010 à 23:05:12
mood
Publicité
Posté le 16-03-2010 à 23:03:51  profilanswer
 

n°1974334
TotalRecal​l
Posté le 17-03-2010 à 02:17:25  profilanswer
 

Je me trompe peut être car je n'ai jamais été confronté à ton cas de figure et je n'ai jamais spécialement fait joujou avec la serialization sorti de ce que le framework fait nativement, mais à mon avis la serialisation telle qu'intégrée dans le framework ne couvre pas ton problème, je pense que tu as forcément des types identiques de chaque côté pour que le système puisse retrouver ses petits.

 

Dans ton cas tu es obligé d'implémenter tes propres méthodes de serialization/deserialization via ISerializable. C'est facile.
Genre : http://www.codeproject.com/KB/cs/objserial.aspx , http://www.switchonthecode.com/tut [...] -to-a-file (tutos anciens mais sans doute encore tt à fait applicables)
Sinon tu ne précises pas si tu parles de serialization xml ou binaire...


Message édité par TotalRecall le 17-03-2010 à 02:18:56

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°1974349
pinpoy
Posté le 17-03-2010 à 07:58:31  profilanswer
 

oui effectivement j'ai eu la même remarque sur developpez.com, je parle de serialisation XML.
 
Je vous tiens au courant si j'arrive à mes fins.

n°1974604
TotalRecal​l
Posté le 17-03-2010 à 15:30:54  profilanswer
 

Dans ton exemple de code tu n'as qu'un seul type de classe avec 2 attributs, dont l'un non initialisé.
Si j'ai bien compris, la question de pinpoy porte sur autre chose.
Deux classes différentes (A et B) avec des attributs identiques (a, b, c) à l'exception d'un quatrième (d) qui serait absent dans un cas, et il voudrait pouvoir instancier indifféremment des A ou B à partir d'un flux xml qui peut contenir ou non d.
Ce n'est pas la même chose qu'un attribut non initialisé comme dans ton cas où on peut assumer un default(type).


Message édité par TotalRecall le 17-03-2010 à 15:32:17

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Sérialisation - Spécifier un attribut de classe comme optionnel

 

Sujets relatifs
Problème d'héritage depuis une classe abstraite[SimpleXML] Récupérer le premier attribut uniquement
Reconnexion d'un MDB, spécifier le nombre d'essaisClasse abstraire et Interface
Petit projet: classe PHP, framework ou pas ?Problème copie d'objet et serialisation
Caste de classe ?[JS] Spécifier l'ID sur un insertCell
[Spring] Classe de constantes chargé à partir d'une BDD 
Plus de sujets relatifs à : Sérialisation - Spécifier un attribut de classe comme optionnel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR