SlideShare une entreprise Scribd logo
1  sur  10
Serialización

Camilo Eduardo Muñoz Lozano
 Microsoft Student Partner Colombia
Microst Student to Business Champion
   camilo@student-partners.com
Serialización
personalizada
Ejecutar los métodos
   personalizados durante y
  después de la serialización
 OnSerializingAttribute




 OnSerializedAttribute




OnDeserializingAttribute




OnDeserializedAttribute
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.
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.
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.
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.
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.
Implementar la interfaz
     ISerializable
Gracias a Dios y a Ustedes

Contenu connexe

Tendances

Tendances (20)

Java script
Java scriptJava script
Java script
 
Introducción a Angular
Introducción a AngularIntroducción a Angular
Introducción a Angular
 
RESUMEN DE JAVASCRIPT
RESUMEN DE JAVASCRIPTRESUMEN DE JAVASCRIPT
RESUMEN DE JAVASCRIPT
 
Javascript
JavascriptJavascript
Javascript
 
Mod2ud1 1
Mod2ud1 1Mod2ud1 1
Mod2ud1 1
 
Semana 2 Configuración entorno de desarrollo
Semana 2   Configuración entorno de desarrolloSemana 2   Configuración entorno de desarrollo
Semana 2 Configuración entorno de desarrollo
 
Introducción a Zend Framework
Introducción a Zend FrameworkIntroducción a Zend Framework
Introducción a Zend Framework
 
Javascript
JavascriptJavascript
Javascript
 
PDO: Capa de abstracción de base de datos con PHP
PDO: Capa de abstracción de base de datos con PHPPDO: Capa de abstracción de base de datos con PHP
PDO: Capa de abstracción de base de datos con PHP
 
Comandos basicos para la programación en javascript
Comandos basicos para la programación en javascriptComandos basicos para la programación en javascript
Comandos basicos para la programación en javascript
 
En 20 minutos ... Como se hizo LooWID.com
En 20 minutos ... Como se hizo LooWID.comEn 20 minutos ... Como se hizo LooWID.com
En 20 minutos ... Como se hizo LooWID.com
 
Action script
Action scriptAction script
Action script
 
Silex para aplicaciones web MVC
Silex para aplicaciones web MVCSilex para aplicaciones web MVC
Silex para aplicaciones web MVC
 
Presentacion node
Presentacion nodePresentacion node
Presentacion node
 
Java script
Java scriptJava script
Java script
 
Introduccion a java script
Introduccion a java scriptIntroduccion a java script
Introduccion a java script
 
PRUEBA OFIMATICA WEB
PRUEBA OFIMATICA WEBPRUEBA OFIMATICA WEB
PRUEBA OFIMATICA WEB
 
Angular Conceptos Practicos 2
Angular Conceptos Practicos 2Angular Conceptos Practicos 2
Angular Conceptos Practicos 2
 
Manual de Java
Manual de JavaManual de Java
Manual de Java
 
Javascript
JavascriptJavascript
Javascript
 

En vedette

Linq En Visual Basic 2008
Linq En Visual Basic 2008Linq En Visual Basic 2008
Linq En Visual Basic 2008kayrambal
 
IntroduccióN A Visual Studio 2008
IntroduccióN A Visual Studio 2008IntroduccióN A Visual Studio 2008
IntroduccióN A Visual Studio 2008Christian Strevel
 
Nuevas formas de pensar en datos con LINQ y Visual Studio 2008
Nuevas formas de pensar en datos con LINQ y Visual Studio 2008Nuevas formas de pensar en datos con LINQ y Visual Studio 2008
Nuevas formas de pensar en datos con LINQ y Visual Studio 2008juliocasal
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLSorey García
 
NetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilNetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilSorey García
 
Entendiendo el .NET Framework
Entendiendo el .NET FrameworkEntendiendo el .NET Framework
Entendiendo el .NET FrameworkSorey García
 
Lanzamiento Visual Studio 2008
Lanzamiento Visual Studio 2008Lanzamiento Visual Studio 2008
Lanzamiento Visual Studio 2008Tonymx
 
Introduccion a LINQ
Introduccion a LINQIntroduccion a LINQ
Introduccion a LINQTonymx
 

En vedette (11)

Clase 5
Clase 5Clase 5
Clase 5
 
Linq En Visual Basic 2008
Linq En Visual Basic 2008Linq En Visual Basic 2008
Linq En Visual Basic 2008
 
IntroduccióN A Visual Studio 2008
IntroduccióN A Visual Studio 2008IntroduccióN A Visual Studio 2008
IntroduccióN A Visual Studio 2008
 
Nuevas formas de pensar en datos con LINQ y Visual Studio 2008
Nuevas formas de pensar en datos con LINQ y Visual Studio 2008Nuevas formas de pensar en datos con LINQ y Visual Studio 2008
Nuevas formas de pensar en datos con LINQ y Visual Studio 2008
 
Framework .NET 3.5 10 Linq
Framework .NET 3.5 10 LinqFramework .NET 3.5 10 Linq
Framework .NET 3.5 10 Linq
 
Inicio de Programación VB .Net
Inicio de Programación VB .NetInicio de Programación VB .Net
Inicio de Programación VB .Net
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAML
 
NetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilNetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvil
 
Entendiendo el .NET Framework
Entendiendo el .NET FrameworkEntendiendo el .NET Framework
Entendiendo el .NET Framework
 
Lanzamiento Visual Studio 2008
Lanzamiento Visual Studio 2008Lanzamiento Visual Studio 2008
Lanzamiento Visual Studio 2008
 
Introduccion a LINQ
Introduccion a LINQIntroduccion a LINQ
Introduccion a LINQ
 

Similaire à SerializacióN Part 2

Equivalencias Vb Net Y C
Equivalencias Vb Net Y CEquivalencias Vb Net Y C
Equivalencias Vb Net Y Cdeadss
 
Introducción-a-Microsoft.NET-[parte3]
Introducción-a-Microsoft.NET-[parte3]Introducción-a-Microsoft.NET-[parte3]
Introducción-a-Microsoft.NET-[parte3]Kevin Reaño
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephpbetabeers
 
Estandar documentacion xml
Estandar documentacion xmlEstandar documentacion xml
Estandar documentacion xmlTohui
 
Estandar documentacion xml
Estandar documentacion xmlEstandar documentacion xml
Estandar documentacion xmlTohui
 
Sesion 02 c++
Sesion 02   c++Sesion 02   c++
Sesion 02 c++imagincor
 
Desarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend FrameworkDesarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend Frameworkricsoc
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programarEduardo Méndez
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programarJuan Hoyos
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programarblasty2
 

Similaire à SerializacióN Part 2 (20)

Equivalencias Vb Net Y C
Equivalencias Vb Net Y CEquivalencias Vb Net Y C
Equivalencias Vb Net Y C
 
Introducción-a-Microsoft.NET-[parte3]
Introducción-a-Microsoft.NET-[parte3]Introducción-a-Microsoft.NET-[parte3]
Introducción-a-Microsoft.NET-[parte3]
 
Javadoc
JavadocJavadoc
Javadoc
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Javadoc
JavadocJavadoc
Javadoc
 
Visual basic .NET
Visual basic .NETVisual basic .NET
Visual basic .NET
 
Semana9 Vbr
Semana9 VbrSemana9 Vbr
Semana9 Vbr
 
Webpack desde cero
Webpack desde ceroWebpack desde cero
Webpack desde cero
 
Estandar documentacion xml
Estandar documentacion xmlEstandar documentacion xml
Estandar documentacion xml
 
Estandar documentacion xml
Estandar documentacion xmlEstandar documentacion xml
Estandar documentacion xml
 
Portafolio de evidencias
Portafolio de evidenciasPortafolio de evidencias
Portafolio de evidencias
 
Portafolio de evidencias
Portafolio de evidenciasPortafolio de evidencias
Portafolio de evidencias
 
Resumen semana2
Resumen semana2Resumen semana2
Resumen semana2
 
Abstract Factory
Abstract FactoryAbstract Factory
Abstract Factory
 
Sesion 02 c++
Sesion 02   c++Sesion 02   c++
Sesion 02 c++
 
Desarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend FrameworkDesarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend Framework
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programar
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programar
 
Tutorial aprendiendo a programar
Tutorial aprendiendo a programarTutorial aprendiendo a programar
Tutorial aprendiendo a programar
 

Plus de kayrambal

Open And Reading Files
Open And Reading FilesOpen And Reading Files
Open And Reading Fileskayrambal
 
Navigating The File System
Navigating The File SystemNavigating The File System
Navigating The File Systemkayrambal
 
Conversion Entre Tipos Leccion 4
Conversion Entre Tipos   Leccion 4Conversion Entre Tipos   Leccion 4
Conversion Entre Tipos Leccion 4kayrambal
 
Navegar Sistema De Archivos
Navegar Sistema De ArchivosNavegar Sistema De Archivos
Navegar Sistema De Archivoskayrambal
 
Comunicaciones Unificadas De Ms
Comunicaciones Unificadas De MsComunicaciones Unificadas De Ms
Comunicaciones Unificadas De Mskayrambal
 
Trucos Y Efectos[1]
Trucos Y Efectos[1]Trucos Y Efectos[1]
Trucos Y Efectos[1]kayrambal
 

Plus de kayrambal (8)

Open And Reading Files
Open And Reading FilesOpen And Reading Files
Open And Reading Files
 
Navigating The File System
Navigating The File SystemNavigating The File System
Navigating The File System
 
Atributos
AtributosAtributos
Atributos
 
Conversion Entre Tipos Leccion 4
Conversion Entre Tipos   Leccion 4Conversion Entre Tipos   Leccion 4
Conversion Entre Tipos Leccion 4
 
Navegar Sistema De Archivos
Navegar Sistema De ArchivosNavegar Sistema De Archivos
Navegar Sistema De Archivos
 
Comunicaciones Unificadas De Ms
Comunicaciones Unificadas De MsComunicaciones Unificadas De Ms
Comunicaciones Unificadas De Ms
 
Trucos Y Efectos[1]
Trucos Y Efectos[1]Trucos Y Efectos[1]
Trucos Y Efectos[1]
 
Web2.0
Web2.0Web2.0
Web2.0
 

Dernier

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 

Dernier (10)

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

SerializacióN Part 2

  • 1. Serialización Camilo Eduardo Muñoz Lozano Microsoft Student Partner Colombia Microst Student to Business Champion camilo@student-partners.com
  • 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

Notes de l'éditeur

  1. 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.
  2. 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.
  3. 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:
  4. 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:
  5. 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.