8

カスタムのシリアル化を実装するオブジェクトは、さまざまな形式 (Xml や byte[] など) にシリアル化および逆シリアル化できます。

キャッシュに入れると、バイナリで強制的に実行したいときに、AppFabric がクラスで IXmlSerializable 実装を実行するという問題に遭遇しました。 AppFabric キャッシュ - オブジェクトのシリアル化と逆シリアル化の要件は何ですか?

これを設定できますか?

(現時点での回避策は、オブジェクトをプログラムで byte[] にシリアル化し、それをキャッシュに送信して、途中でプロセスを逆にすることです)。

4

1 に答える 1

7

MSDN のドキュメントでは、この目標を達成するために IDataCacheObjectSerializer を実装できると書かれています。ここでそれについて読むことができます:http://msdn.microsoft.com/en-us/library/windowsazure/hh552969.aspx

class MySerializer : IDataCacheObjectSerializer
{
    public object Deserialize(System.IO.Stream stream)
    {
        // Deserialize the System.IO.Stream 'stream' from
        // the cache and return the object 
    }

    public void Serialize(System.IO.Stream stream, object value)
    {
        // Serialize the object 'value' into a System.IO.Stream
        // that can be stored in the cache
    }
}

その後、カスタムシリアライザーを DataCacheFactory に設定できます。

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

お役に立てれば。

于 2011-11-19T15:26:15.420 に答える