Pourquoi ne Demande.Les Cookies chaîne de retour au lieu de HttpCookie objet dans la boucle foreach?

Ce matin, j'ai accidentellement vu l'extrait suivant du code, j'ai été assez surpris car il fonctionne très bien.

Ne regarde pas sa logique, s'il vous plaît, je suis juste curieux de savoir pourquoi le HttpCookieCollection (Requête.Les Cookies dans ce cas) retourner une chaîne de caractères (nom du cookie) au lieu d'un HttpCookie objet dans la boucle foreach. Est-il une cohérence problème, parce que nous obtenons normalement HttpCookie objet de cette collection par index/nom?

Merci,

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);
    }
}
  • Merci à vous, @Chris: je ne demande pas comment itérer une collection en boucle 😉
  • j'ai le même problème, je ne comprends pas pourquoi je dois utiliser des chaînes de caractères place de HttpCookie dans le foreach déclaration. aucun indice?
  • si vous utilisez le Système.Net.CookieCollection vous pouvez effectuer une itération de cette façon. mais pas avec HttpCookieCollection, comportement étrange, je pense. public static HttpCookieCollection CookieCollectionToHttpCookieCollection(CookieCollection cookieCollection) { HttpCookieCollection httpCookieCollection = new HttpCookieCollection(); foreach (Cookie cookie dans cookieCollection) { httpCookieCollection.Ajouter(CookieToHttpCookie(cookie)); } return httpCookieCollection; }
InformationsquelleAutor Tien Do | 2009-06-20