Tag: nullreferenceexception

检查会话是否为空

我想检查会话是空还是空,即这样的事情: if(Session[“emp_num”] != null) { if (!string.IsNullOrEmpty(Session[“emp_num”].ToString())) { //The code } } 要不就 if(Session[“emp_num”] != null) { // The code } 因为有时我只检查: if (!string.IsNullOrEmpty(Session[“emp_num”].ToString())) { //The code } 我面临以下例外: 空引用exception

完全合格的财产名称

我正在尝试阻止System.NullReferenceException。 我有一个公司,有一个雇员集合。 每个员工都有一系列技能。 SelectedEmployee指向Employee集合中当前选定的元素。 SelectedSkill指向技能集合中当前选定的元素。 我有一个ListView,其ItemSource绑定到Skills集合; ListView的SelectedItem绑定到SelectedSkill。 删除技能时,我希望ListView滚动到最后一个元素。 private void DeleteSelectedSkillFromSelectedEmployee() { Company.SelectedEmployee.Skills.Remove(Company.SelectedEmployee.SelectedSkill); EmployeeSkillsListView.ScrollIntoView(Company.SelectedEmployee.Skills.Last()); } 如果尚未选择Employee,则SelectedEmployee将为null。 在方法内部执行任何操作时,这将导致System.NullReferenceException。 注意:我使用了一个扩展方法来替换.Last(),因此它不会在空集合上出错。 为了解决这个问题,我使用了Util方法: public static class Utils { public static bool PropertyExists(Object obj, String name) { foreach (String part in name.Split(‘.’)) { if (obj == null) { return false; } Type type = obj.GetType(); System.Reflection.PropertyInfo info = type.GetProperty(part); if […]

为什么ResourceManager.GetResourceSet在构建后的第一个请求上返回null? (C#)

我正在研究一个用C#(asp.net)构建的大型Web应用程序。 我有一个简单的aspx页面,它为客户端浏览器提供本地化字符串,以便在javascript控件中使用。 为了获得字符串,我执行以下操作: ResourceManager _resources = new ResourceManager(_pathname, typeof(ARM).Assembly); ResourceSet rs = _resources.GetResourceSet(culture, false, false); //loop through rs and write the keys & values out to the client in plaintext 这一切都很好,除了在Clean / Build或Rebuild之后立即对页面的第一个请求(如果我只是进行一些更改,然后Build,它工作正常)。 所以在第一个请求时,当我尝试迭代ResourceSet时,我得到一个空引用exception。 但是,如果我在错误之后刷新页面,那么它从那时起就可以正常工作。 有谁知道为什么会这样?

EmguCV – 面部识别 – 使用Microsoft Access数据库中的训练集时,“对象引用未设置”exception

我一直在使用EmguCV(C#)开发人脸识别应用程序。 如果我将脸部图像(训练集)存储在简单的Windows文件夹中,我就可以完成所有工作。 但是,在我尝试迁移面部图像以存储在Microsoft Access数据库中之后,当应用程序尝试时,经常会发生“未设置为对象实例的对象引用”exception消息(并非总是如此,但大部分时间)从videoFeed中识别脸部。 有趣的是,如果不发生exception,识别实际上仍然可以正常工作。 这是我的程序代码的片段,使用Windows文件夹和数据库: 从Windows文件夹中读取存储的图像 private void FaceRecognition_Load(object sender, EventArgs e) { //if capture is not created, create it now if (capture == null) { try { capture = new Capture(); } catch (NullReferenceException excpt) { MessageBox.Show(excpt.Message); } } if (capture != null) { if (captureInProgress) { Application.Idle -= ProcessFrame; } else { […]

如何在VS2010中允许打破’System.NullReferenceException’?

我有一个VS 2010 C#.NET 4项目。 问题是程序在调试期间没有破坏’NullReferenceException’错误。 输出窗口将显示以下内容: A first chance exception of type ‘System.NullReferenceException’ occurred in myProgram.exe …但是调试器将退出该函数并继续运行该程序的其余部分。 如何更改此行为以便调试器将在这些exception中中断?

模型中的MVC5 Razor NullReferenceException

出于某种原因,每当我尝试访问我的模型时,我都会收到NullReferenceException。 这是我的控制器的代码: public async Task Bar(string fooSlug, int barId) { var foo = await mediaService.GetFoo(fooSlug); var bar = await barService.GetBarFromFooByTitleId(foo.TitleId, barId); var viewModel = new ViewModels.BarViewModel(foo, bar); return View(viewModel); } ViewModel中的代码: public class BarViewModel { public Models.Sub.FooDetails Foo{ get; set; } public Models.Sub.BarDetails Bar { get; set; } public BarViewModel(Models.Sub.FooDetails foo, Models.Sub.BarDetails bar) { this.Foo […]

如何分解成员访问表达式链?

短版(TL; DR): 假设我有一个表达式,它只是一个成员访问运算符链: Expression<Func> e = x => x.foo.bar.baz; 您可以将此表达式视为子表达式的组合,每个子表达式包含一个成员访问操作: Expression<Func> e1 = (Tx x) => x.foo; Expression<Func> e2 = (Tfoo foo) => foo.bar; Expression<Func> e3 = (Tbar bar) => bar.baz; 我想要做的是将这些组件子表达式分解,以便我可以单独使用它们。 更短的版本: 如果我有表达式x => x.foo.bar ,我已经知道如何中断x => x.foo 。 如何拉出另一个子表达式foo => foo.bar ? 为什么我这样做: 我试图在C#中模拟“提升”成员访问操作符,就像CoffeeScript的存在访问操作符一样?. 。 Eric Lippert表示, 类似的运营商被考虑用于C#,但没有预算来实施它。 如果这样的运算符存在于C#中,您可以执行以下操作: value = target?.foo?.bar?.baz; 如果target.foo.bar.baz链的任何部分结果为null,那么整个事情将评估为null,从而避免NullReferenceException。 […]

如何在AutoMapper映射中忽略属性的属性?

映像具有多对多关系的Person和Group类。 一个人有一个组列表,一个组有一个人员列表。 将Person映射到PersonDTO我有一个stack overflow exception因为AutoMapper无法处理Person > Groups > Members > Groups > Members > … 所以这是示例代码: public class Person { public string Name { get; set; } public List Groups { get; set; } } public class Group { public string Name { get; set; } public List Members { get; set; } } public […]

WebBrowser控件抛出看似随机的NullReferenceException

几天后,我正在开发基于WebBrowser的webscraper。 在使用Threads和DocumentCompleted事件的几个原型之后,我决定尝试看看我是否可以创建一个简单易懂的Webscraper。 目标是创建一个不涉及实际Thread对象的Webscraper。 我希望它按顺序步骤工作(即转到url,执行操作,转到其他url等等)。 这是我到目前为止所得到的: public static class Webscraper { private static WebBrowser _wb; public static string URL; //WebBrowser objects have to run in Single Thread Appartment for some reason. [STAThread] public static void Init_Browser() { _wb = new WebBrowser(); } public static void Navigate_And_Wait(string url) { //Navigate to a specific url. _wb.Navigate(url); //Wait till […]

如何强制执行空检查?

我正在开展一个大项目,即使有1000个自动化测试和100%代码覆盖率的10个,我们也会得到一些荒谬的错误。 我们得到的大约95%的错误是NullReferenceExceptions。 有没有办法在编译时强制执行空值检查? 除此之外,有没有办法在unit testing中自动执行空值检查而不必自己编写null案例的测试?