Поэтому мне нужен нестатический параметр экземпляра, который будет содержать значения:< /p>
Код: Выделить всё
private ConcurrentDictionary _cache = new ConcurrentDictionary();;
Код: Выделить всё
Cannot serialize the aspects: Cannot find a serializer for type 'System.Collections.Concurrent.ConcurrentDictionary`
но теперь мой _cache получал исключения нулевого указателя, потому что (я предполагаю) произошла некоторая десериализация, помешавшая моей инициализации _cache. Я не уверен, когда и почему PostSharp должен сериализовать/десериализовать. Мне удалось обойти проблему, выполнив
Код: Выделить всё
private void InitializeCache()
{
if (_cache == null)
{
_cache = new ConcurrentDictionary();
}
}
// This method is called after deserialization to re-initialize non-serialized fields
public override void RuntimeInitialize(MethodBase method)
{
base.RuntimeInitialize(method);
InitializeCache();
}
Подробнее здесь: https://stackoverflow.com/questions/789 ... -attribute
Мобильная версия