40

私が使用しているコントローラーコードでは、次のようになっていますRequest.Url.<Something>Request.UrlReSharperは、それがnullになる可能性があることを示唆しています。

では、正確Request.Urlにnullになるのはいつですか?私はテストについて話しているのではなく、ライブである/すでにデプロイされているアプリケーションについてのみ興味があります。

NullReferenceExceptionこれまでの使用からsを受け取っていないことに注意してくださいRequest.Url

4

2 に答える 2

48

HttpRequestBaseはクラスであり、ReSharperはそれを実際のクラスと見なしますが、それ以上のものではありません(理論的にはそうなる可能性がありますnull)。したがって、この特定のクラスの使用状況は分析されません。

Request.Url実際には、そうなることはないと思うnullので、この場合はReSharperを無視してください。

于 2012-08-27T06:37:55.907 に答える
15

実際には、NullReferenceExceptionを使用すると発生する可能性がありますRequest.Url。他のクラスが派生する独自のベースコントローラークラスを作成すると、Requestはnullになります。または、ASP.NET MVCでActionMailerを使用する場合は、から派生するコントローラークラスを作成する必要がありますMailerBase(これによりRequest、このコントローラー内もnullになります)。

代替方法:nullHttpContext.Current.Requestかどうかを使用または確認します。Request

于 2014-03-02T08:26:59.050 に答える