Serialização no Cache na Função do Azure
Importante
A Microsoft recomenda que todos os novos desenvolvimentos usem o Cache Redis do Azure. Para obter documentação e diretrizes atuais sobre como escolher uma oferta do Cache do Azure, confira qual oferta do Cache do Azure é certa para mim?
Microsoft Azure Cache dá suporte a três modos diferentes de serialização. Cada item armazenado no cache deve ser primeiramente serializado em um fluxo persistente. Cada item recuperado do cache deve ser desserializado de volta para o seu formato de objeto. Este tópico descreve as opções de serialização disponíveis em cache.
Tipos de serialização
A tabela a seguir descreve os três tipos de serialização.
Definição de configuração | Descrição |
---|---|
NetDataContractSerializer |
Serializa objetos com a classe NetDataContractSerializer . Esse é o padrão. |
Binaryformatter |
Serializa objetos com a classe BinaryFormatter . |
CustomSerializer |
Serializa objetos usando uma classe de serialização personalizada fornecida pelo aplicativo. |
Se nenhuma opção de serialização for especificada, o cache usará o NetDataContractSerializer. Observe que todas as classes armazenadas no cache devem ser marcadas como Serializáveis.
No arquivo de configuração, você pode especificar o elemento serializationProperties como um filho do elemento dataCacheClient . O exemplo a seguir demonstra uma seção dataCacheClients com dois clientes de cache nomeados. O cliente de cache padrão usa a serialização padrão e o segundo cliente de cache especifica a serialização binária.
<dataCacheClients>
<dataCacheClient name="default">
<autoDiscover isEnabled="true" identifier="WebRole1" />
</dataCacheClient>
<dataCacheClient name="binaryConfig">
<serializationProperties serializer="BinaryFormatter" />
<autoDiscover isEnabled="true" identifier="WebRole1" />
</dataCacheClient>
</dataCacheClients>
O exemplo a seguir mostra como você acessaria cada uma dessas configurações de cliente de cache no código.
// "default" cache client configuration, "default" cache:
DataCache cacheTest1 = new DataCache();
cacheTest1.Put("test", "test");
// "binaryConfig" cache client configuration, "default" cache:
DataCache cacheTest2 = new DataCache("default", "binaryConfig");
cacheTest2.Put("test", "test");
A serialização personalizada requer codificação adicional. Para obter mais informações, consulte Como usar um serializador personalizado com o Cache In-Role do Azure.
Observação
O equivalente programático do elemento serializationProperties é a classe DataCacheSerializationProperties . As propriedades dessa classe correspondem aos mesmos três tipos de serialização. Essa enumeração é atribuída à propriedade DataCacheFactoryConfiguration.SerializationProperties .
Importante
Os provedores de ASP.NET para cache não dão suporte a tipos de serialização binários ou personalizados.