Сегодня утром я случайно увидел следующий код фрагмента, я был довольно удивлен, потому что он работает очень хорошо.Почему Request.Cookies возвращает строку вместо объекта HttpCookie в цикле foreach?
Не смотрите на его логику, пожалуйста, мне просто интересно, почему HttpCookieCollection (Request.Cookies в этом случае) возвращает строку (имя файла cookie) вместо объекта HttpCookie в цикле foreach. Это проблема согласованности, потому что мы обычно получаем объект HttpCookie в этой коллекции по индексу/имени?
Спасибо,
foreach (string cookieKey in System.Web.HttpContext.Current.Request.Cookies)
{
HttpCookie tmpCookie = System.Web.HttpContext.Current.Request.Cookies[cookieKey];
if (tmpCookie != null && tmpCookie["RecentlyVisited"] != null)
{
cookie.Add(tmpCookie);
}
}
Спасибо, : Я @ Крис не спросить, как перебирать коллекцию с помощью цикла;) –
У меня такая же проблема, я не понимаю почему я должен использовать string insted HttpCookie в объявлении foreach. любой ключ? – gonxalo
, если вы используете System.Net.CookieCollection, вы можете повторить этот путь. но не с HttpCookieCollection, странное поведение, я думаю. Публичный статический HttpCookieCollection CookieCollectionToHttpCookieCollection (CookieCollection cookieCollection) { HttpCookieCollection httpCookieCollection = new HttpCookieCollection(); foreach (Cookie cookie in cookieCollection) { httpCookieCollection.Add (CookieToHttpCookie (cookie)); } return httpCookieCollection; } – gonxalo