Exportar (0) Imprimir
Expandir Tudo

Como: Usar um serializador personalizado com o cache do Azure

Atualizado: setembro de 2014

noteObservação
Para orientação sobre como escolher a oferta Azure Cache para seu aplicativo, consulte Qual oferta de cache do Azure é ideal para mim?.

O Cache do Microsoft Azure serializa objetos antes de colocá-los no cache e desserializa objetos que são recuperados do cache. Internamente, a serialização é realizada pela classe NetDataContractSerializer. Este tópico explica como criar e usar uma classe de serialização personalizada para uso em aplicativos do que usam o Cache.

TipDica
Em tese, você pode obter benefícios de desempenho otimizando a serialização dos seus tipos conhecidos.

  1. Primeiramente, prepare o ambiente de desenvolvimento para usar o Cache.

  2. Crie uma classe derivada de IDataCacheObjectSerializer.

  3. Implemente os dois métodos nessa interface: Serialize e 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. Adicione ao projeto o código do serializador personalizado ou uma referência a um assembly que implemente o serializador personalizado.

  2. No arquivo de configuração do aplicativo, adicione um elemento serializationProperties dentro da seção dataCacheClient.

  3. No elemento serializationProperties, atribua o atributo serializer a "CustomSerializer". Atribua o atributo customSerializerType à classe que implementa o serializador.

O exemplo a seguir demonstra como usar o arquivo de configuração do aplicativo para especificar um serializador personalizado denominado MyNamespace.MySerializer.

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

  1. Adicione ao projeto o código do serializador personalizado ou uma referência a um assembly que implemente o serializador personalizado.

  2. Crie um objeto DataCacheSerializationProperties, usando o construtor para especificar a opção DataCacheObjectSerializerType.CustomSerializer e uma nova instância da sua classe serializadora.

  3. Atribua esse objeto à propriedade DataCacheFactoryConfiguration.SerializationProperties e use esse objeto DataCacheFactoryConfiguration para configurar uma nova DataCacheFactory.

O exemplo a seguir demonstra como usar código para especificar um serializador personalizado denominado 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);

Se um serializador personalizado for usado com um cache, todos os clientes desse cache terão que usar a mesma versão do serializador personalizado para acessar objetos compartilhados no cache.

Mostrar:
© 2015 Microsoft