示例#1
0
        public TResponse Get(TRequest request)
        {
            var remoteUri = RequestUrlBuilder.From(ServerUri, request).Build();

            var xmlDoc   = new XmlDocument();
            var cacheKey = string.Format("RepositoryXml:{0}", remoteUri);

            var fromCache = ScopedCacheWrapper.Get <XmlDocument>(cacheKey);

            if (fromCache.InnerXml != "")
            {
                xmlDoc = fromCache;
            }
            else
            {
                try
                {
                    xmlDoc.Load(remoteUri);
                    ScopedCacheWrapper.Insert(cacheKey, xmlDoc, 60);
                }
                catch (Exception)
                {
                    return(new TResponse());
                }
            }

            return(XmlDeserializer.From <TResponse>(xmlDoc, xmlDoc.InnerText));
        }