El almacenamiento en caché de AppFabric - ¿Puedo especificar el estilo de serialización utilizado para todos los objetos?
-
04-10-2019 - |
Pregunta
Un objeto que implementa algunas de serialización personalizado se puede serializar y deserializar a diferentes formatos, por ejemplo a XML o byte [].
Me han topado con un problema en el que cuando pongo en la caché, AppFabric se ejecuta la aplicación IXmlSerializable en una clase cuando yo preferiría obligarlo a ir con el binario. AppFabric Caché - ¿Cuáles son sus requisitos de serialización y deserialización de un objeto
?¿Puedo configurar esto?
(En el momento de la solución es serializar el objeto mediante programación a un byte [] y luego enviar que en la memoria caché, invirtiendo el proceso a la salida).
Solución
En la documentación de MSDN dice que podríamos aplicar IDataCacheObjectSerializer para lograr este objetivo. Usted puede leer sobre ello aquí: http://msdn.microsoft.com/en-us/library /windowsazure/hh552969.aspx
class MySerializer : IDataCacheObjectSerializer
{
public object Deserialize(System.IO.Stream stream)
{
// Deserialize the System.IO.Stream 'stream' from
// the cache and return the object
}
public void Serialize(System.IO.Stream stream, object value)
{
// Serialize the object 'value' into a System.IO.Stream
// that can be stored in the cache
}
}
de Afer que, se puede establecer el serializador personalizado a la DataCacheFactory:
DataCacheFactoryConfiguration configuration = new DataCacheFactoryConfiguration();
configuration.SerializationProperties =
new DataCacheSerializationProperties(DataCacheObjectSerializerType.CustomSerializer,
new MyNamespace.MySerializer());
// Assign other DataCacheFactoryConfiguration properties...
// Then create a DataCacheFactory with this configuration
DataCacheFactory factory = new DataCacheFactory(configuration);
Espero que esto ayude.