在我的控制器代码中,我正在使用:Request.Url.<Something>
. ReSharper 建议Request.Url
可以为空。
那么,究竟什么时候可以Request.Url
为空呢?我不是在谈论测试,我只对实时/已经部署的应用程序感兴趣。
请注意,到目前为止,我还没有收到任何NullReferenceException
使用Request.Url
过的 s。
在我的控制器代码中,我正在使用:Request.Url.<Something>
. ReSharper 建议Request.Url
可以为空。
那么,究竟什么时候可以Request.Url
为空呢?我不是在谈论测试,我只对实时/已经部署的应用程序感兴趣。
请注意,到目前为止,我还没有收到任何NullReferenceException
使用Request.Url
过的 s。
HttpRequestBase
是一个类,ReSharper 将其视为一个实际的类,仅此而已(理论上,它可以null
)。所以不分析这个具体Class的用法。
实际上,我认为这Request.Url
永远不会null
,所以在这种情况下忽略 ReSharper 。
实际上NullReferenceException
在使用时会发生Request.Url
. 当您创建自己的其他类派生自的基本控制器类时,Request
将为空。或者在将 ActionMailer 与 ASP.NET MVC 一起使用时,您必须创建一个派生自的控制器类MailerBase
(这也会导致Request
该控制器内部为空)。
替代方案:使用HttpContext.Current.Request
或检查是否Request
为空。