Кэш приложения Azure, проблемы сериализации с анонимными классами от Linq до SQL - PullRequest
1 голос
/ 16 декабря 2011

У меня проблемы с помещением списка <> анонимного класса в кеш.

var cache = new DataCacheFactory().GetCache("default");
var parts = somethingIQueryable.Select(i => new { i.s1, i.s2 } );
cache.Put("somekey", parts.ToList(), TimeSpan.FromMinutes(2));

Это вызывает исключение сериализации. Однако это работает, если я помещаю данные в такой класс:

public class A { public string s1, public string s2 }    

var cache = new DataCacheFactory().GetCache("default");
var parts = somethingIQueryable.Select(i => new A { s1 = i.s1, s2 = i.s2 } );
cache.Put("somekey", parts.ToList(), TimeSpan.FromMinutes(2));

Я бы предпочел не определять классы для каждого маленького кусочка данных, поступающего в кеш, хотя, и мне было интересно, есть ли способ заставить первый пример работать?

1 Ответ

3 голосов
/ 16 декабря 2011

Вы не сможете сериализовать анонимные типы и хранить их в кеше, как это, и, к сожалению, потребуется создать List<A> и сохранить его.

Это может произойти из-за того, что сравнивать нечегоанонимный тип против выполнения сериализации и десериализации.Просто у него нет возможности узнать, что такое анонимный тип, потому что, как следует из названия, он анонимный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...