Cette documentation est archivée et n’est pas conservée.

Utilisation d'un sérialiseur personnalisé avec Azure In-Role Cache

Mis à jour: août 2015

ImportantImportant
Microsoft recommande que tous les nouveaux développements utilisent le Cache Redis Azure. Pour une documentation et des conseils actualisés sur le choix d'une offre de Cache Azure, voir Quelle est l'offre Azure Cache qui me convient ?

La cache Microsoft Azure sérialise les objets avant de les placer dans le cache et désérialise ceux qui sont récupérés depuis le cache. En interne, la sérialisation est gérée par la classe NetDataContractSerializer. Cette rubrique vous explique comment créer et utiliser une classe de sérialisation personnalisée dans vos applications Azure qui utilisent Cache.

TipConseil
Vous pouvez améliorer votre efficacité en optimisant la sérialisation de types connus.

  1. Commencez par préparer l'environnement de développement de manière à ce qu'il utilise la Cache.

  2. Créez une classe qui dérive de IDataCacheObjectSerializer.

  3. Implémentez ces deux méthodes dans cette interface : Serialize et Deserialize.

class MySerializer : IDataCacheObjectSerializer
{
    public object Deserialize(System.IO.Stream stream)
    {
            object returnObject = null;

            // Deserialize the System.IO.Stream 'stream' from
            // the cache and return the object.

            return returnObject;
    }

    public void Serialize(System.IO.Stream stream, object value)
    {
        // Serialize the object 'value' into the System.IO.Stream 'stream'
        // which will then be stored in the cache.
    }
}

  1. Ajoutez le code de votre sérialiseur personnalisé à votre projet, ou insérez une référence à un assembly qui implémente celui-ci.

  2. Dans le fichier de configuration de l'application, ajoutez l'élément serializationProperties dans la section dataCacheClient.

  3. Dans l'élément serializationProperties, affectez l'attribut serializer à « CustomSerializer ». Affectez l'attribut customSerializerType à la classe qui implémente le sérialiseur.

L'exemple suivant montre comment utiliser le fichier de configuration de l'application pour spécifier un sérialiseur personnalisé nommé MyNamespace.MySerializer.

<dataCacheClient>
    <serializationProperties serializer="CustomSerializer" 
       customSerializerType="MyNamespace.MySerializer, MyAssembly" />
    <!-- Other dataCacheClient Elements, such as hosts -->
</dataCacheClient>

  1. Ajoutez le code de votre sérialiseur personnalisé à votre projet, ou insérez une référence à un assembly qui implémente celui-ci.

  2. Créez un objet DataCacheSerializationProperties à l'aide du constructeur pour spécifier l'option DataCacheObjectSerializerType.CustomSerializer et une nouvelle instance de votre classe de sérialiseur.

  3. Affectez cet objet à la propriété DataCacheFactoryConfiguration.SerializationProperties et utilisez cet objet DataCacheFactoryConfiguration pour configurer un nouveau DataCacheFactory.

L'exemple suivant montre comment utiliser un code pour spécifier un sérialiseur personnalisé nommé MyNamespace.MySerializer.

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);

Si un sérialiseur personnalisé est utilisé avec un cache, tous les clients de ce dernier doivent utiliser la même version du sérialiseur personnalisé pour accéder aux objets partagés dans ce cache.

Afficher: