8

Một đối tượng triển khai một số serialization tùy chỉnh có thể được tuần tự hóa và deserialized thành các định dạng khác nhau, ví dụ như Xml hoặc byte [].AppFabric Caching - Tôi có thể chỉ định kiểu tuần tự hóa được sử dụng cho tất cả các đối tượng không?

Tôi đã gặp phải sự cố khi tôi đặt vào bộ nhớ cache, AppFabric chạy triển khai IXmlSerializable trên lớp khi tôi muốn ép buộc nó đi với nhị phân. AppFabric Caching - What are its serialization and deserialization requirements for an object?

Tôi có thể định cấu hình này không?

(Hiện tại, giải pháp thay thế đối tượng là tuần tự hóa đối tượng thành một byte [] và sau đó gửi nó vào bộ nhớ cache, đảo ngược quá trình trên đường ra).

Trả lời

7

Trong tài liệu MSDN, chúng tôi có thể triển khai IDataCacheObjectSerializer để đạt được mục tiêu này. Bạn có thể đọc về nó ở đây: 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 
    } 
} 

Afer đó, bạn có thể thiết lập các tùy chỉnh serializer đến 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); 

Hope this helps.

+0

Cảm ơn! Điều này sẽ cứu mạng tôi! – Zingui

+3

Chỉ để tránh nhầm lẫn với bất cứ ai - Giải pháp này sẽ chỉ làm việc cho các cửa sổ bộ nhớ đệm xanh và không phải bộ nhớ cache appfabric. MS làm việc rất chăm chỉ để gây nhầm lẫn đủ trong tên sản phẩm của họ. Chi tiết khác trong các nhận xét tại đây - http://blogs.msdn.com/b/jagan_peri/archive/2012/08/23/custom-serializer.aspx –

Các vấn đề liên quan