在asp.net mvc视图模型上抑制来自Resharper的可能的空引用异常消息

时间:2014-05-04 07:18:34

标签: c# asp.net asp.net-mvc resharper nullreferenceexception

考虑这样的代码:

[HttpPost]   
     public ActionResult Index(TestModel testModel)
    {
        //ReSharper PossibleNullReferenceException message appears on the testModel
        var x = testModel.Name;
        return View(testModel);
    }

有没有更好的方法告诉Resharper testModel永远不能为null。我想避免放置Debug.Assert,如果null抛出等等我的动作方法似乎太冗长了。 这也适用于我的服务变量(我正在使用dependecy injection,_ myService.blah等)。我喜欢这个类的绿色Resharper tick(没有错误或警告)告诉我我已经处理了所有空引用和代码正确性。但是如果我忽略了我没有得到绿色标记的消息。

你们如何处理这个问题,你是否用注释来抑制消息,如果抛出空值则放置,添加调试断言(这只会使代码有点过于冗长,因为你可以假设它永远不会为空。

注意:我不想关闭空引用检查(我已将它们设置为警告)。

1 个答案:

答案 0 :(得分:4)

嗯,听起来你在ReSharper中打开了“悲观的空检查”,它假设未明确检查null或用[NotNull]标记的所有内容都为空。默认情况下,ReSharper使用“乐观”方法,如果您没有显式检查null或使用[CanBeNull]属性标记实体,ReSharper将不会标记它。

您希望使用乐观模式,通过转到ReSharper选项中的代码检查→设置确保启用它,并确保选中突出显示的条目:

这应该会显着减少可能的空引用警告的数量!