Your SlideShare is downloading. ×
0
SerializacióN Part 2
SerializacióN Part 2
SerializacióN Part 2
SerializacióN Part 2
SerializacióN Part 2
SerializacióN Part 2
SerializacióN Part 2
SerializacióN Part 2
SerializacióN Part 2
SerializacióN Part 2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

SerializacióN Part 2

589

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
589
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • La serialización personalizada es el proceso de controlar la serialización y deserialización de un tipo. Controlando la serialización, es posible asegurarse compatibilidad de la serialización, que es la capacidad para serializar y deserializar entre las versiones de un tipo sin interrumpir la funcionalidad básica del tipo. En la primera versión de un tipo, puede haber por ejemplo, sólo dos campos. En la versión siguiente de un tipo, se agregan varios campos más. Todavía la segunda versión de una aplicación debe poder serializar y deserializar ambos tipos. Las secciones siguientes describen cómo controlar la serialización.
  • Estos atributos permiten al tipo participar en cualquiera de las cuatro fases (o en todas ellas) de los procesos de serialización y deserialización. Los atributos especifican los métodos del tipo que debe invocarse durante cada fase. Los métodos no tienen acceso a la secuencia de serialización pero sí le permiten modificar el objeto antes y después de la serialización, o antes y después de la deserialización. Los atributos se pueden aplicar a todos los niveles de la jerarquía de herencia de tipos, y cada método de la jerarquía es llamado del base al más derivado. Este mecanismo evita la complejidad y cualquier problema ocasionado por la implementación de la interfaz ISerializable haciendo recaer la responsabilidad de la serialización y deserialización en la implementación más derivada. Asimismo, este mecanismo permite a los formateadores omitir el rellenado de los campos y la recuperación desde la secuencia de serialización. Para obtener detalles y ejemplos del control de la serialización y deserialización, haga clic en cualquiera de los vínculos incluidos anteriormente. Además, al agregar un nuevo campo a un tipo serializable existente, aplique el atributo OptionalFieldAttribute al campo. BinaryFormatter y SoapFormatter omiten la ausencia del campo cuando se procesa una secuencia a la que le falta el nuevo campo.
  • Utilice OnSerializingAttribute para manipular el objeto antes de que tenga lugar la serialización. Para utilizar OnSerializingAttribute, el método debe contener un parámetro StreamingContext. El atributo marca el método al que llamará la infraestructura de la serialización y StreamingContext proporciona datos adicionales sobre el tipo de serialización que va a tener lugar. En el código siguiente se muestra su utilización:
  • Utilice OnSerializedAttribute para manipular el objeto después de que se haya producido la serialización. Para utilizar OnSerializedAttribute, el método debe contener un parámetro StreamingContext. El atributo marca el método al que llamará la infraestructura de la serialización y StreamingContext proporciona datos adicionales sobre el tipo de serialización que va a tener lugar. En el código siguiente se muestra su utilización:
  • El otro modo de controlar la serialización es mediante la implementación de la interfaz ISerializable en un objeto. Sin embargo, recuerde que el método descrito en la sección anterior sustituye a este método para controlar la serialización. No debe utilizar la serialización predeterminada en clases que estén marcadas con el atributo Serializable y que tengan seguridad imperativa o declarativa en el nivel de clase o en sus constructores. En su lugar, estas clases deben implementar siempre la interfaz ISerializable.La implementación de ISerializable implica la implementación del método GetObjectData y de un constructor especial que se utiliza al deserializar el objeto. En el siguiente ejemplo de código se muestra cómo implementar ISerializable en la clase MyObject de una sección anterior.
  • Transcript

    • 1. Serialización Camilo Eduardo Muñoz Lozano Microsoft Student Partner Colombia Microst Student to Business Champion camilo@student-partners.com
    • 2. Serialización personalizada
    • 3. Ejecutar los métodos personalizados durante y después de la serialización OnSerializingAttribute OnSerializedAttribute OnDeserializingAttribute OnDeserializedAttribute
    • 4. OnSerializingAttribute Nota: esta clase es nueva en la versión 2.0 de .NET Framework. C# [OnSerializingAttribute()] internal void RunThisMethod(StreamingContext context) { // Code not shown. } ' Visual Basic <OnSerializingAttribute()> _ Private Sub RunThisMethod(context As StreamingContext) ' Code not shown. End Sub Nota: En el código, se puede utilizar la palabra OnSerializing en lugar de OnSerializingAttribute, que resulta más largo.
    • 5. OnSerializedAttribute Nota: esta clase es nueva en la versión 2.0 de .NET Framework. C# [OnSerializedAttribute()] internal void RunThisMethod(StreamingContext context) { // Code not shown. } ' Visual Basic <OnSerializedAttribute()> _ Private Sub RunThisMethod(context As StreamingContext) ' Code not shown. End Sub Nota: En el código, se puede utilizar la palabra OnSerialized en lugar de OnSerializedAttribute, que resulta más largo.
    • 6. OnDeserializingAttribute Nota: esta clase es nueva en la versión 2.0 de .NET Framework. C# [OnDeserializingAttribute()] internal void RunThisMethod(StreamingContext context) { // Code not shown. } ' Visual Basic <OnDeserializingAttribute ()> _ Private Sub RunThisMethod(context As StreamingContext) ' Code not shown. End Sub Nota: En el código, se puede utilizar la palabra OnDeserializing en lugar de OnDeserializingAttribute, que resulta más largo.
    • 7. OnDeserializedAttribute Nota: esta clase es nueva en la versión 2.0 de .NET Framework. C# [OnDeserializedAttribute()] internal void RunThisMethod(StreamingContext context) { // Code not shown. } ' Visual Basic <OnDeserializedAttribute ()> _ Private Sub RunThisMethod(context As StreamingContext) ' Code not shown. End Sub Nota: En el código, se puede utilizar la palabra OnDeserialized en lugar de OnDeserializedAttribute, que resulta más largo.
    • 8. OnDeserializedAttribute Nota: esta clase es nueva en la versión 2.0 de .NET Framework. C# [OnDeserializedAttribute()] internal void RunThisMethod(StreamingContext context) { // Code not shown. } ' Visual Basic <OnDeserializedAttribute ()> _ Private Sub RunThisMethod(context As StreamingContext) ' Code not shown. End Sub Nota: En el código, se puede utilizar la palabra OnDeserialized en lugar de OnDeserializedAttribute, que resulta más largo.
    • 9. Implementar la interfaz ISerializable
    • 10. Gracias a Dios y a Ustedes

    ×