Domanda

Un oggetto che implementa alcune serializzazione personalizzata può essere serializzato e deserializzato in diversi formati, ad esempio per XML o byte [].

Ho eseguito in un problema in cui quando ho messo nella cache, AppFabric gestisce l'implementazione IXmlSerializable su una classe, quando avrei preferito costringerlo ad andare con binario. AppFabric Caching - Quali sono i suoi requisiti di serializzazione e deserializzazione per un oggetto

?

Posso configurare questo?

(Al momento la soluzione è serializzare l'oggetto programatically ad un byte [] e quindi inviare che nella cache, invertendo il processo sull'uscita).

È stato utile?

Soluzione

Nella documentazione MSDN dice che potremmo implementare IDataCacheObjectSerializer per raggiungere questo obiettivo. Si può leggere su qui: 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
    }
}

Afer che, è possibile impostare il serializzatore personalizzato al 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);

Spero che questo aiuti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top