У меня есть этот огромный объект домена (скажем, родитель), который содержит другие объекты домена. Требуется много времени, чтобы «создать» этот родительский объект путем запроса к БД (хорошо, мы оптимизируем БД). Поэтому мы решили кешировать его, используя memcached (точнее, с northscale )
Итак, я просмотрел свой код и пометил все классы (я думаю) как [Serializable]
, но когда я добавляю его в кеш, в моем окне вывода VS.net выдается исключение сериализации.
var cache = new NorthScaleClient("MyBucket");
cache.Store(StoreMode.Set, key, value);
Это исключение:
A first chance exception of type 'System.Runtime.Serialization.SerializationException' occurred in mscorlib.dll
ТАК, я думаю, я не пометил все классы как [Serializable]
. Я не использую сторонние библиотеки и могу пометить любой класс как [Serializable]
, но как мне определить, какой класс не работает, когда кэш пытается сериализовать объект?
Edit1: комментарии casperOne заставляют меня задуматься. Я смог кешировать эти доменные объекты с помощью Microsoft Cache Application Block, не отмечая их [Serializable]
, но не с помощью memcached в NorthScale. Это заставляет меня думать, что, возможно, что-то связано с их реализацией, но просто из любопытства я по-прежнему заинтересован в том, чтобы найти причину ошибки при попытке добавить объект в memcached