AppFabric Caching - Могу ли я указать стиль сериализации, используемый для всех объектов?

StackOverflow https://stackoverflow.com/questions/3756480

Вопрос

Объект, который реализует некоторую пользовательскую сериализацию, может быть сериализован и десериализован для разных форматов, например, к XML или байту [].

Я столкнулся с проблемой, когда я положу в кэш, AppFabric запускает IXMLSerializable реализацию в классе, когда я предпочел заставить его идти с двоичным. AppFabric Caching - Каковы его сериализация и требования к десериализации для объекта?

Могу ли я настроить это?

(На данный момент обходной путь состоит в том, чтобы разработать объект на байте [], а затем отправлять это в кэш, обратившись на процесс на выходе).

Это было полезно?

Решение

В документации MSDN он говорит, что мы можем реализовать IDatacacheObjectserializer для достижения этой цели. Вы можете прочитать об этом здесь: http://msdn.microsoft.com/en-us/library/windowsazure/hhh552969.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);

Надеюсь это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top