Tag: nullreferenceexception

entity framework5线程敏捷性

抛出EntityFramework代码内部的NullReferenceException(EF bug?),但我的问题是关于Entity Framework(v5)和WebAPI异步控制器动作。 一个repro很难在这里重新创建,但代码本质上做了以下事情: public class AController : ApiController { private IUow _uow; //among other things, a DbContext // DI ctor public AController(IUow uow) { _uow = uow; } [HttpPost] public async Task Post(Model model) { Entity e = _uow.Entity.GetById(model.id); await IO_Ops_Async(model); new ModelAdapter().UpdateEntity(entity, model); _uow.Commit(); <- EXCEPTION THROWN DURING THIS CALL – see below […]

创建线程时出现NullReferenceException

我正在看这个线程创建一个简单的线程池。 在那里,我遇到了@ MilanGardian对.NET 3.5的回应,它很优雅并且符合我的目的: using System; using System.Collections.Generic; using System.Threading; namespace SimpleThreadPool { public sealed class Pool : IDisposable { public Pool(int size) { this._workers = new LinkedList(); for (var i = 0; i 0) { Monitor.Wait(this._tasks); } this._disposed = true; Monitor.PulseAll(this._tasks); // wake all workers (none of them will be active at this point; […]

NullReferenceException未被用户代码处理 – 对象引用未设置为对象的实例

我有以下C#类: public class Locales { public Region region { get; set; } public Buttons buttons { get; set; } public Fields fields { get; set; } } public class Region { public Center center { get; set; } public East east { get; set; } } public class Center { public string title { get; […]

我似乎已经陷入了NullReferenceExceptions的巨大麻烦

最近我正在开发一种解析和显示网站XML信息的软件。 够简单吧? 我正在获取NullReferenceExceptions的LOADS。 例如,这种方法: private void SetUserFriends(List list) { int x = 40; int y = 3; if (list != null) { foreach (Friend friend in list) { FriendControl control = new FriendControl(); control.ID = friend.ID; control.URL = friend.URL; control.SetID(friend.ID); control.SetName(friend.Name); control.SetImage(friend.Photo); control.Location = new Point(x, y); panel2.Controls.Add(control); y = y + control.Height + 4; […]

为什么Entity Framework返回空List 而不是空?

我是ASP .NET MVC世界的新手。 也许,这就是我无法向自己解释对我来说是一个令人讨厌的问题的原因。 我有一节有一对多的关系。 class MyClass{ public List otherClasses {get;set;} } 当我持久化这个类的一个实例时,我用空List 填充它的关系 MyClass myClass = new MyClass(){ otherClasses = new List() } context.myClass.Add(myClass); 问题是,当我尝试检索该实例时,由于任何原因,我尝试访问该列表,系统给我一个空参考例外… 我的问题是:为什么EF不返回空列表而不是空列表? 特别是在这种情况下,我用空列表坚持它? 有什么方法可以避免validation实例是否为null?

c#代码似乎以无效方式进行优化,使得对象值变为null

我有以下代码,表现出一个奇怪的问题: var all = new FeatureService().FindAll(); System.Diagnostics.Debug.Assert(all != null, “FindAll must not return null”); System.Diagnostics.Debug.WriteLine(all.ToString()); // throws NullReferenceException FindAll方法的签名是: public List FindAll() 单步执行代码我已确认FindAll的返回值不为null,正如您从Assert中看到的那样,“all”变量不为null,但在下一行中它似乎为null。 调用ToString()方法时,问题不是特定于失败。 在尝试跟踪根本原因时,我将其简化为可重现的示例。 这可能是一个线索:在调试器中,变量“all”出现在Locals窗口中,其值为“无法获取本地或参数的值’all’,因为它在此指令指针处不可用,可能是因为它已经被优化了。“ 我考虑尝试其他地方记录的方法之一来禁用代码优化,但这并不能真正解决问题,因为代码的发布版本仍然会得到优化。 我正在使用Visual Studio 2010与.NET 4.0。 有什么想法吗? 更新:根据请求,这是整个方法: protected override List GetModels() { var all = new FeatureService().FindAll(); var wr = new WeakReference(all); System.Diagnostics.Debug.Assert(all != null, “FindAll must not return […]

在LINQ to SQL中执行InsertOnSubmit时出现NullReferenceException

在我的数据库中,我有一个名为StaffMembers的表 当我通过linq-to-sql将它带入我的.net项目时,会创建一个实体类StaffMember 现在我还在我的项目中创建了一个部分类StaffMember,以添加我在其他顶层使用的额外属性。 例如。 IsDeleted属性。 此partial类还inheritance了一个抽象类和接口,以确保还实现了一些其他属性。 现在当我创建一个新的“StaffMember”实例时 例如。 StaffMember newStaff = new StaffMember(); 并给它所有的属性等 然后通过我的Manager调用上下文中的InsertOnSubmit。 Add(StaffMember newStaff) { context.StaffMembers.InsertOnSubmit(newStaff); context.Save(); } 我得到一个“对象引用未设置为对象的实例”错误。 on context.StaffMembers.InsertOnSubmit(newStaff); 堆栈说 ” at System.Data.Linq.Mapping.EntitySetDefSourceAccessor`2.GetValue(T instance)\r\n at System.Data.Linq.Mapping.MetaAccessor`2.GetBoxedValue(Object instance)\r\n at System.Data.Linq.ChangeTracker.StandardChangeTracker.StandardTrackedObject.HasDeferredLoader(MetaDataMember deferredMember)\r\n at System.Data.Linq.ChangeTracker.StandardChangeTracker.StandardTrackedObject.get_HasDeferredLoaders()\r\n at System.Data.Linq.ChangeTracker.StandardChangeTracker.Track(MetaType mt, Object obj, Dictionary`2 visited, Boolean recurse, Int32 level)\r\n at System.Data.Linq.ChangeTracker.StandardChangeTracker.Track(Object obj, Boolean recurse)\r\n at System.Data.Linq.ChangeTracker.StandardChangeTracker.Track(Object […]

C#中的空引用exception

当我试图从结构中返回一个值时,我遇到了“空引用exception”。 这是代码: AssetItem item = new AssetItem(); item = initModified(); bool found = false; int index = getIndex(barcode); string modifiedFile = filepath + “Modified\\” + dir + “\\” + index + “.asdt”; if(File.Exists(modifiedFile)) { using(StreamReader reader = new StreamReader(modifiedFile)) { string line = reader.ReadLine(); while(line.Trim()!=””) { string[] split = line.Split(‘,’); if(split[1]==barcode) { found = true; […]

如何将Null Reference Analysis的结果导入日志文件

我有以下课程。 class Tim { public Tim() { } public Tom GetTom() { return new Tom(); } } class Tom { public Tom() { } public Jim GetJim() { return new Jim(); } } class Jim { public Jim() { } public Jom GetJom() { return null; } } class Jom { public Jom() { } […]

为什么集合初始化会引发NullReferenceException

以下代码抛出NullReferenceException : internal class Foo { public Collection Items { get; set; } // or List } class Program { static void Main(string[] args) { new Foo() { Items = { “foo” } // throws NullReferenceException }; } } 为什么收集initiliazers在这种情况下不起作用,虽然Collection实现了Add()方法,为什么抛出NullReferenceException? 是否可以使集合初始化程序工作,或者是Items = new Collection() { “foo” }初始化它的唯一正确方法?