Azure In-Role Cache でのシリアル化
重要
Microsoft では、すべての新しい開発で Azure Redis Cache を使用することをお勧めします。 Azure Cache オファリングの選択に関する最新のドキュメントとガイダンスについては、「自分に適した Azure Cache オファリング」を参照してください。
Microsoft Azure キャッシュでは、3 つの異なるシリアル化モードがサポートされています。 最初に、キャッシュに格納されている各アイテムを、永続ストリームにシリアル化する必要があります。 キャッシュから取得した各アイテムを、シリアル化解除してオブジェクト形式に戻す必要があります。 このトピックでは、キャッシュで使用できるシリアル化オプションについて説明します。
シリアル化の種類
次の表では、3 種類のシリアル化について説明します。
構成設定 | [説明] |
---|---|
NetDataContractSerializer |
NetDataContractSerializer クラスを使用してオブジェクトをシリアル化します。 既定値です。 |
BinaryFormatter |
BinaryFormatter クラスを使用してオブジェクトをシリアル化します。 |
CustomSerializer |
アプリケーションによって提供されるカスタム シリアル化クラスを使用して、オブジェクトをシリアル化します。 |
シリアル化オプションが指定されていない場合、キャッシュでは NetDataContractSerializer が使用されます。 キャッシュに格納されているすべてのクラスは、 シリアル化可能としてマークする必要があることに注意してください。
構成ファイルでは、 serializationProperties 要素を dataCacheClient 要素の子として指定できます。 次の例では、2 つの名前付きキャッシュ クライアントを含む dataCacheClients セクションを示します。 既定のキャッシュ クライアントは既定のシリアル化を使用し、2 番目のキャッシュ クライアントはバイナリ シリアル化を指定します。
<dataCacheClients>
<dataCacheClient name="default">
<autoDiscover isEnabled="true" identifier="WebRole1" />
</dataCacheClient>
<dataCacheClient name="binaryConfig">
<serializationProperties serializer="BinaryFormatter" />
<autoDiscover isEnabled="true" identifier="WebRole1" />
</dataCacheClient>
</dataCacheClients>
次の例では、これらの各キャッシュ クライアント構成にコードでアクセスする方法を示します。
// "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");
カスタム シリアル化には追加のコーディングが必要です。 詳細については、「 方法: Azure In-Role Cache でカスタム シリアライザーを使用する」を参照してください。
注意
プログラムによる serializationProperties 要素と同等の要素は、DataCacheSerializationProperties クラスです。 このクラスのプロパティは、同じシリアル化の 3 種類に対応しています。 この列挙型は、 DataCacheFactoryConfiguration.SerializationProperties プロパティに割り当てられます。
重要
キャッシュ用の ASP.NET プロバイダーは、バイナリシリアル化またはカスタムシリアル化の種類をサポートしていません。