Когда Request.Url может быть нулевым?
В моем коде контроллера я использую: Request.Url.<Something>
. ReSharper предполагает, что Request.Url
может быть нулевым.
Итак, , когда точно может Request.Url
быть нулевым? Я не говорю о тестировании, меня интересует только приложение, которое находится в прямом эфире/уже развернуто.
Обратите внимание: я не получил NullReferenceException
от использования Request.Url
до этой точки.
Ответы
Ответ 1
HttpRequestBase
- это класс, и ReSharper рассматривает его как действительный класс, не более (теоретически он может быть null
). Поэтому он не анализирует использование этого конкретного класса.
В действительности, я думаю, что Request.Url
никогда не будет null
, поэтому просто игнорируйте ReSharper в этом случае.
Ответ 2
Фактически a NullReferenceException
может возникать при использовании Request.Url
. Когда вы создаете свой собственный класс базового контроллера, из которого производятся другие классы, Request
будет иметь значение null. Или, используя ActionMailer с ASP.NET MVC, вам придется создать класс контроллера, который происходит от MailerBase
(что также приводит к тому, что Request
внутри этого контроллера имеет значение null).
Альтернатива: используйте HttpContext.Current.Request
или проверьте, не имеет ли значение Request
.