Поскольку Silverlight работает на стороне клиента, вам необходимо кэшировать данные на стороне сервера.
Вы можете получить ваши данные с WCF.
Что-то вроде этого:
В прошлом я занимался кэшированием запроса с использованием WCF с использованием корпоративной библиотеки :
public class YourWcfService
{
ICacheManager _cacheManager = null;
public YourWcfService()
{
_cacheManager = EnterpriseLibraryContainer.Current.GetInstance<ICacheManager>("Cache Manager");
}
}
Ваш веб-метод будет выглядеть примерно так:
[OperationContract]
public List<Guid> SomeWebMethod()
{
if (_cacheManager.Contains("rgal")) // data in cache?
result = (List<Guid>)_cacheManager.GetData("rgal");
if (result == null)
{
result = FETCH FROM DATABASE HERE;
// cache for 120 minutes
_cacheManager.Add("rgal", result, CacheItemPriority.Normal, null, new AbsoluteTime(TimeSpan.FromMinutes(120)));
}
return result;
}