我有一些代码:
使用(var userlookup = new UserLookup())
{
someThing = someCollection
.选择(t =>
{
var user = userLookup.UserLookup(t.UserId);
返回新包装器
{
UserString = string.Format("{0} {1} ({2})",
user.FirstName, user.LastName, t.UserId),
SomeOtherProperty = t.SomeFunction()
ETC..
};
});
}
当someThing被访问时,我得到一个ObjectDisposedException. 这可以通过删除 using 块来解决。如果我这样做:
UserLookup当 Linq 可枚举被释放时会被释放吗?- 如果是这样,这是怎么发生的?
- 有没有办法重新构造此代码以在处置
UserLookup可枚举时处置实例同时仍保持延迟执行?
(我确定我可以在 using 块中调用 ToList() 并且它会正常工作,我可能会这样做,但只是出于好奇)
我还应该提到这someThing是 MVC 视图模型上的一个属性。