我用下面的組件使用protobuf網二進制序列與Enyim Memcached的掛鉤NHibernate的2級緩存:NHibernate的MemCached W/Protobuf-net.Enyim - 它實際上工作?
- NHibernate的
- NHibernate.Caches.EnyimMemcached
- Enyim.Caching
- protobuf網
- 的protobuf-net.Enyim
它最近來我在張力說,儘管與EnyimMemcached掛鉤protobuf網,我可能沒有實際使用串行作爲我的所有實體均標有剛[Serializable]
也不[DataContract]
或[ProtoContract]
具有相應的有序數據/ ProtoMembers的性質。當我添加相應的屬性(或者使用RuntimeTypeModel.Default類的protobuf-net手動註冊它們)後,我可以直接與EnyimMemcached一起使用protobuf-net與memcache進行交互。但是,即使我在使用protobuf-net註冊我的類型時進行盡職調查,我不認爲任何來自NHibernate的緩存條目實際上都會被protobuf-net序列化,因爲NHibernate.Caches.EnyimMemcached存儲了條目在DictionaryEntry
對象內的高速緩存:
bool returnOk = client.Store(
StoreMode.Set, KeyAsString(key),
new DictionaryEntry(GetAlternateKeyHash(key), value),
TimeSpan.FromSeconds(expiry));
DictionaryEntry
沒有[DataContract]
和[DataMember(Order = xx)]
屬性。這使我懷疑...
可我甚至合理利用NHibernate的二級緩存的protobuf網串行?