Tag: resharper nullreferenceexception

Visual Studio可以告诉我哪个引用引发了NullReferenceException?

我正在为MVC Web应用程序编写unit testing,并且我一直在获取null引用exception,因为模拟的测试对象只是部分初始化。 我知道哪一行抛出exception,它看起来像这样: return Supervisor.RegistrationInformation.Registrations .Any(r => r.RegistrationCountry.IsUSAOrCandada() && (!DatesWorked.Start.HasValue || r.RegistrationDate = DatesWorked.End.Value) && //… 那里有很多参考文献,其中任何一个都可能是问题所在。 但是, NullReferenceException本身似乎没有捕获哪个引用爆炸。 我传入lambda的事实提出了另一个挑战:据我所知,我无法在调试期间单步执行lambda并查看r哪些成员为null。 有什么方法可以做到以下一个或两个: 让Visual Studio告诉我究竟哪个引用引发了NullReferenceException ? 如果失败了,有没有办法让调试器逐步通过lambda表达式(或者只是将鼠标hover在东西上以查看它们的值),因为Any正在评估它? 我觉得必须有办法做这些事情,但我似乎无法找到它。 我使用的是VS2010 Premium,我安装了Resharper,VS Power Tools和其他一些扩展程序。 如果有一个附加组件可以做到这一点,我会很好。 编辑: 正如Eric Lippert指出的那样,当代码在Release配置中编译时,无法确定NRexception的来源。 我只是询问在调试模式下工作。 如果Visual Studio(或VS的某些扩展)可以在调试时跟踪引用的来源,那将回答我的问题。 编辑2: 第二个问题 – 如何打破和逐步通过lambda – 已经得到了回答,但我仍然想知道是否有一种自动方法来追踪空引用。

ReSharper:如何删除“可能的’System.NullReferenceException’”警告

这是一段代码: IUser user = managerUser.GetUserById(UserId); if ( user==null ) throw new Exception(…); Quote quote = new Quote(user.FullName, user.Email); 这里一切都很好。 但是,如果我用以下内容替换“if”行: ComponentException.FailIfTrue(user == null, “Can’t find user with Id=” + UserId); 函数实现如下: public abstract class ComponentException : ComponentException where T : ComponentException, new() { public static void FailIfTrue(bool expression, string message) { if (expression) { T […]