2013-05-14 13 views
5

widzę ostrzeżenie ReSharper 'Możliwa NullReferenceException' na tym kodzie na drugiej linii:HttpCookieCollection.Get(): Możliwe NullReferenceException

var cookie = HttpContext.Current.Response.Cookies[CookieName]; 
cookie.Expires = DateTime.Now.AddDays(-1); 

sprawdziłem HttpCookieCollection.Get() Metoda w MSDN i mówi „Jeśli Podany plik cookie nie istnieje, ta metoda tworzy nowy plik cookie o tej nazwie. ". Wygląda na to, że NullReferenceException nie może się zdarzyć.

Czy to tylko ReSharper bug czy coś mi umknęło?

Odpowiedz

2

Wygląda na to, że wyjątek NullReferenceException nie może się zdarzyć.

HttpContext.Current będzie mieć wartość null, jeśli wykonasz ten kod poza kontekstem ASP.NET, na przykład na przykład test jednostkowy, konsola lub aplikacja pulpitu.

+0

Dzięki za odpowiedź. Potrzeba wyjaśnienia, ostrzeżenie pojawia się w drugiej linii. Zaktualizowałem moje pytanie. – Teddy

0

HttpCookieCollection.Get() może spowodować zerowego odniesienia wyjątek, kiedy nie jest wywoływana z HttpResponse. Tak więc, ReSharper jest technicznie poprawny, że może wystąpić wyjątek, chociaż nie stanie się to w twoim przykładzie kodu. This so question pokazuje przykład, w którym możliwe jest zerowanie.

Powiązane problemy