2009-03-01 5 views

Répondre

6

Vos objets contiennent des références circulaires qui ne sont pas prises en charge par la classe . Vous pourriez plutôt regarder le DataContractSerializer quels scénarios supports.

+0

Ceci est également le mécanisme par défaut préféré pour la sérialisation maintenant en l'absence de raisons impérieuses pour les mécanismes plus anciens. – ShuggyCoUk

+0

Votre lien DataContractSerializer est lié à XmlSerializer dans MSDN ... – configurator

+0

Je publierais le code terminé si j'avais plus de 300 caractères à jouer, mais il suffit de dire, en utilisant le DataContractSerializer travaillé. Je vous remercie. –

0

Vous devez vous assurer que vous savez comment vous souhaitez sérialiser et désérialiser ces classes. Ecrivez le XML que vous voulez en conséquence, et déterminez comment vous voulez que les objets deviennent XML et vice versa. Ce n'est pas une évidence.

0

Voici ma solution. Il n'est peut-être pas aussi élégant que vous le penseriez:

public class Report 
{ 
    //... 


    void PostLoad() 
    { 
    foreach(Section s in Sections) 
    { 
     s.Report = this; 
    } 
    } 

    public static Report Load(string filename) 
    { 
    // Load using an XmlSerializer 
    Report report = ...; 

    report.PostLoad(); 

    return report; 
    } 
} 
Questions connexes