コード例 #1
0
        public Observe <T> GetDeserializedCachedAndRefreshedAsync <T>(Uri url, string cacheFile) where T : class
        {
            Observe <T> sequence = Observe.Empty <T>();

            if (this.storage.Exists(cacheFile))
            {
                sequence = this.storage.LoadJsonAsync <T>(cacheFile);
            }

            return(sequence.Concat(
                       from cache in this.GetStreamAsync(url, false).Select(Json <T> .Instance.DeserializeFromStream)
                       from _ in this.storage.SaveJsonAsync(cacheFile, cache)
                       select cache));
        }