Dziś rano przypadkowo zobaczyłem poniższy kod fragmentu, byłem dość zaskoczony, ponieważ działa bardzo dobrze.Dlaczego Request.Cookies zwraca ciąg znaków zamiast obiektu HttpCookie w pętli foreach?
Nie patrz na jego logikę proszę, jestem tylko ciekawy dlaczego HttpCookieCollection (Request.Cookies w tym przypadku) zwraca ciąg (nazwa cookie) zamiast obiektu HttpCookie w pętli foreach. Czy jest to kwestia spójności, ponieważ zwykle otrzymujemy obiekt HttpCookie w tej kolekcji według indeksu/nazwy?
Dzięki,
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);
}
}
Dziękuję @Chris: Nie pytam jak iteracyjne kolekcji przy pętli;) –
mam ten sam problem, ja nie rozumiem dlaczego muszę użyć ciągu insted z HttpCookie w deklaracji foreach. jakaś wskazówka? – gonxalo
jeśli używasz System.Net.CookieCollection możesz iterować w ten sposób. ale nie z HttpCookieCollection, dziwne zachowanie myślę. static HttpCookieCollection CookieCollectionToHttpCookieCollection (CookieCollection cookieCollection) { HttpCookieCollection httpCookieCollection = nowy HttpCookieCollection(); foreach (plik cookie cookie w cookieCollection) { httpCookieCollection.Add (CookieToHttpCookie (cookie)); } return httpCookieCollection; } – gonxalo