lunes, 18 de noviembre de 2013

Cómo serializar los objetos de. NET Remoting

El marco de. NET proporciona dos formateadores de serialización de objetos de interacción remota de aplicaciones. 

Serializar objetos

La serialización se utiliza en. NET Remoting para enviar datos entre dominios de aplicación. Para los objetos de cálculo por valor, los propios datos se serializa y se copian a través de los dominios de aplicación. En el caso de los objetos de cálculo por referencia, sólo la referencia se serializa y se envía. Serialización en. NET Remoting se puede hacer usando el formateador binario para aplicaciones donde la velocidad es crítica, o el jabón si el formateador de interoperabilidad o entre firewalls comunicación es necesaria. Formattters se pueden cambiar en cualquier momento sin afectar el código de comunicación remota.



Lo que necesita

Aplicaciones de cliente remoto. NET y el servidor

Visual Studio Sugiera Edita preparar la clase



Añadir SerializableAttribute al comienzo de la declaración de clase



Public Serializable () Clase TestSimpleObject ... End Class



Asegúrese de que cada miembro de la clase es serializable. El NonSerializedAttribute atributo puede ser añadido si el miembro debe ser ignorado. Comportamiento predeterminado del marco es serializar campos públicos y privados.



Agregue el OptionalFieldAttribute atribuir a un campo que puede quedar con un valor nulo. Esto se suma a la declaración del campo:



Public Serializable () Clase TestSimpleObject



System.Runtime.Serialization.OptionalField _TITLE cadena privada



End Class

Encapsular los métodos



Encapsular el método de serialización (binario):



public static void BinarySerialize (objeto obj, archivo de cadena) {using (FileStream _FileStream = new FileStream (archivo, FileMode.Create)) {BinaryFormatter _Formatter = new BinaryFormatter (); _Formatter.Serialize (_FileStream, obj);}}



Encapsular el método de deserialización (binario):



objeto public static BinaryDeserialize (string file) {using (FileStream _FileStream = new FileStream (archivo, FileMode.Open)) {BinaryFormatter _Formatter = new BinaryFormatter (); regreso _Formatter.Deserialize (_FileStream);}}



Formateadores se pueden cambiar de binario a SOAP / XML, simplemente cambiando BinaryFormatter para XMLSerializer.



Consejos y advertencias

Usa XMLSerializer durante el desarrollo, incluso si el BinaryFormatter se utilizará en la producción. La salida de XMLSerializer es legible y hace la solución de problemas durante el desarrollo mucho más fácil.



Verifique la comunicación subyacente entre hosts o dominios de aplicación es funcional antes de probar la comunicación remota. Esto puede ahorrar un montón de tiempo de solución de problemas en el desarrollo.



 

No hay comentarios:

Publicar un comentario