¿Con qué frecuencia debería ser llamado método GetObjectData de cada objeto durante la serialización personalizada?

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

Pregunta

estoy serializar los datos en mi aplicación personalizada utilizando la serialización es decir, cada una de las clases que estoy almacenamiento tiene el atributo [Serializable] e implementos ISerializable. El gráfico objeto que está siendo serializado es razonablemente complejo con un montón de referencias cruzadas entre los objetos / clases. La serialización funciona , pero es bastante lento. : (

Al poner un punto de interrupción en el método GetObjectData de cada clase en cuestión, he encontrado que estoy recibiendo muchas, muchas más visitas que tengo objetos.

Estoy confundido - mi comprensión del marco de serialización era que iba a almacenar cada objeto sólo una vez, incluso si el gráfico de objetos contiene múltiples referencias a ella. Supuse que esto significaba que tendría que ser llamado una sola vez durante el ahorro método GetObjectData de cada objeto. ¿Me equivoco?

Y si es así, ¿hay algo que pueda hacer en este enfoque para reducir el número de llamadas a los métodos GetObjectData mis clases?

Gracias.

¿Fue útil?

Solución

El MSDN docs hacer no garantiza solo 1 llamada por instancia de objeto.

¿Usted ha intentado esto con diferentes formateadores? Hay comentarios aquí en el sentido de que el trabajo seleccionado se está haciendo para mejorar esto. específicamente para Indigo (aka WCF).

  

No se garantiza que este método   se llamará sólo una vez por objeto   ejemplo durante la serialización.   Por lo tanto, el método debería ser   implementado de tal manera que su   comportamiento será el mismo, independientemente   del número de veces que se llama.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top