Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

Vorgehensweise: Verwenden eines benutzerdefinierten Serialisierers mit Azure-In-Role Cache

Letzte Aktualisierung: August 2015

ImportantWichtig
Microsoft empfiehlt, für alle neuen Entwicklungen Azure Redis Cache zu verwenden. Eine aktuelle Dokumentation und Anleitung bei der Auswahl eines Azure Cache-Angebots finden Sie unter Welches Azure-Cache-Angebot ist das Richtige für mich?

Microsoft Azure Cache serialisiert Objekte, bevor diese im Cache gespeichert werden. Objekte, die aus dem Cache abgerufen werden, werden deserialisiert. Intern wird die Serialisierung durch die Klasse NetDataContractSerializer ausgeführt. In diesem Thema wird erläutert, wie Sie eine benutzerdefinierte Serialisierungsklasse für die Verwendung in Ihren Azure--Anwendungen erstellen und verwenden können, die Cache verwenden.

TipTipp
Potenziell ergeben sich durch die Optimierung der Serialisierung Ihrer bekannten Typen Leistungsvorteile.

  1. Zuerst bereiten Sie die Entwicklungsumgebung vor, damit Cache verwendet wird.

  2. Erstellen Sie eine Klasse, die von IDataCacheObjectSerializer abgeleitet ist.

  3. Implementieren Sie die beiden Methoden in dieser Schnittstelle: Serialize und 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. Fügen Sie Ihrem Projekt den Code für die benutzerdefinierte Serialisierung hinzu, oder fügen Sie einen Verweis auf eine Assembly hinzu, die die benutzerdefinierte Serialisierung implementiert.

  2. Fügen Sie in der Anwendungskonfigurationsdatei im Abschnitt serializationProperties ein Element dataCacheClient hinzu.

  3. Weisen Sie im Element serializationProperties "CustomSerializer" das Attribut serializer zu. Weisen Sie das Attribut customSerializerType der Klasse zu, die die Serialisierung implementiert.

Das folgende Beispiel zeigt, wie die Anwendungskonfigurationsdatei zum Angeben einer benutzerdefinierten Serialisierung namens MyNamespace.MySerializer verwendet wird.

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

  1. Fügen Sie Ihrem Projekt den Code für die benutzerdefinierte Serialisierung hinzu, oder fügen Sie einen Verweis auf eine Assembly hinzu, die die benutzerdefinierte Serialisierung implementiert.

  2. Erstellen Sie ein DataCacheSerializationProperties-Objekt, und verwenden Sie dabei den Konstruktor, um die Option DataCacheObjectSerializerType.CustomSerializer und eine neue Instanz Ihrer Serialisierungsklasse anzugeben.

  3. Weisen Sie dieses Objekt der Eigenschaft DataCacheFactoryConfiguration.SerializationProperties zu, und verwenden Sie dann dieses DataCacheFactoryConfiguration-Objekt zum Konfigurieren einer neuen DataCacheFactory.

Das folgende Beispiel zeigt, wie Code zum Angeben einer benutzerdefinierten Serialisierung namens MyNamespace.MySerializer verwendet wird.

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

Wenn eine benutzerdefinierte Serialisierung mit einem Cache verwendet wird, müssen alle Clients dieses Caches die gleiche Version der benutzerdefinierten Serialisierung verwenden, wenn sie auf freigegebene Objekte in diesem Cache zugreifen.

Anzeigen: