Con quale frequenza dovrebbe metodo GetObjectData di ciascun oggetto essere chiamato durante la serializzazione personalizzato?

StackOverflow https://stackoverflow.com/questions/3865297

Domanda

Sto serializzazione dei dati nella mia app utilizzando serializzazione personalizzata cioè ciascuna delle classi che sto memorizzazione ha l'attributo [Serializable] e attrezzi ISerializable. Il grafico oggetto che viene serializzato è ragionevolmente complesso con molti riferimenti incrociati tra gli oggetti / classi. La serializzazione lavori , ma è piuttosto lento. : (

Per mettere un punto di interruzione nel metodo di GetObjectData di ciascuna classe in questione, ho scoperto che sto ricevendo molti, molti colpi più di quanto io ho gli oggetti.

Sono confuso - la mia comprensione del quadro serializzazione era che sarebbe memorizzare ogni oggetto una sola volta, anche se l'oggetto grafico contiene più riferimenti ad esso. Ho pensato che questo significava metodo GetObjectData di ciascun oggetto avrebbe bisogno di essere chiamato solo una volta durante il salvataggio. Mi sbaglio?

E se è così, c'è qualcosa che posso fare in questo approccio per ridurre il numero di chiamate a metodi GetObjectData mie lezioni?

Grazie.

È stato utile?

Soluzione

Il MSDN docs fare non garantisce solo 1 chiamata per ogni istanza di oggetto.

Hai provato questo con diverse formattatori? Ci sono commenti qui per l'effetto che il lavoro selezionato è stato stato fatto per migliorare la situazione. appositamente per Indigo (aka WCF).

  

Non è garantito che questo metodo   sarà chiamato solo per oggetto   esempio durante la serializzazione.   Pertanto, il metodo dovrebbe essere   attuato in modo tale che la sua un   comportamento sarà lo stesso indipendentemente   del numero di volte che viene chiamato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top