操作方法:将自定义序列化程序与 Azure 角色中缓存一起使用

更新时间: 2015年8月

Important重要提示
Microsoft 建议使用 Azure Redis 缓存进行所有新的开发。有关选择 Azure 缓存产品的最新文档和指导,请参阅哪种 Azure 缓存产品适合我?

Microsoft Azure Cache在将对象放入缓存之前序列化对象,并反序列化从缓存中检索的对象。在内部,这种序列化由 NetDataContractSerializer 类处理。本主题介绍如何创建和使用自定义序列化类,以便在使用 Azure的 缓存 应用程序中使用。

Tip提示
通过优化已知类型的序列化可能会获得性能优势。

  1. 首先,准备好开发环境以使用 缓存。

  2. 创建一个从 IDataCacheObjectSerializer 派生的类。

  3. 在此接口中实现两个方法:SerializeDeserialize

class MySerializer : IDataCacheObjectSerializer
{
    public object Deserialize(System.IO.Stream stream)
    {
            object returnObject = null;

            // Deserialize the System.IO.Stream 'stream' from
            // the cache and return the object.

            return returnObject;
    }

    public void Serialize(System.IO.Stream stream, object value)
    {
        // Serialize the object 'value' into the System.IO.Stream 'stream'
        // which will then be stored in the cache.
    }
}

  1. 将自定义序列化程序的代码添加到项目中,或添加对程序集的引用以实现该自定义序列化程序。

  2. 在应用程序配置文件中的 serializationProperties 部分添加 dataCacheClient 元素。

  3. serializationProperties 元素内,将 serializer 属性分配给“CustomSerializer”。将 customSerializerType 属性分配给实现该序列化程序的类。

以下示例演示了如何使用应用程序配置文件来指定名为 MyNamespace.MySerializer 的自定义序列化程序。

<dataCacheClient>
    <serializationProperties serializer="CustomSerializer" 
       customSerializerType="MyNamespace.MySerializer, MyAssembly" />
    <!-- Other dataCacheClient Elements, such as hosts -->
</dataCacheClient>

  1. 将自定义序列化程序的代码添加到项目中,或添加对程序集的引用以实现该自定义序列化程序。

  2. 创建一个 DataCacheSerializationProperties 对象,使用构造函数指定 DataCacheObjectSerializerType.CustomSerializer 选项以及序列化程序类的新实例。

  3. 将此对象分配给 DataCacheFactoryConfiguration.SerializationProperties 属性,并使用该 DataCacheFactoryConfiguration 对象配置一个新的 DataCacheFactory

以下示例演示了如何使用代码来指定名为 MyNamespace.MySerializer 的自定义序列化程序。

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

如果某个自定义序列化程序与某个缓存一起使用,则该缓存的所有客户端在访问该缓存内的共享对象时,必须使用与该自定义序列化程序相同的版本。

显示: