AppFabric Caching - Могу ли я указать стиль сериализации, используемый для всех объектов?
-
04-10-2019 - |
Вопрос
Объект, который реализует некоторую пользовательскую сериализацию, может быть сериализован и десериализован для разных форматов, например, к 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);
Надеюсь это поможет.