В этом случае хеш-подход не будет работать из-за XML-комментария, добавляемого некоторым кэшированием на стороне сервера, которое постоянно очень часто, даже когда реальный фид никогда не меняется.
Единственное, что вы можете сделать для этого фида, - это использовать условные запросы HTTP, чтобы запросить у сервера данные, только если они действительно были изменены с момента последнего запроса.
Например:
У вас будет глобальная переменная / переменная-член, которая будет содержать дату последнего изменения даты и времени из вашего канала
var lastModified = DateTime.MinValue;
Тогда каждый раз, когда вы делаете запрос, подобный следующему
var request = (HttpWebRequest)WebRequest.Create( "http://www.extremetech.com/feed" );
request.IfModifiedSince = lastModified;
try {
using ( var response = (HttpWebResponse)request.GetResponse() ) {
lastModified = response.LastModified;
using ( var stream = response.GetResponseStream() ) {
//*** parsing the stream
var reader = XmlReader.Create( stream );
SyndicationFeed feed = SyndicationFeed.Load( reader );
}
}
}
catch ( WebException e ) {
var response = (HttpWebResponse)e.Response;
if ( response.StatusCode != HttpStatusCode.NotModified )
throw; // rethrow an unexpected web exception
}