当访问someThing
时,我得到一个ObjectDisposedException
。这可以通过移除using块来解决。如果我这样做:
- 当Linq枚举被处理时,
UserLookup
会被处理吗? - 如果是这样,这是怎么发生的?
- 是否有任何方法来重新结构这段代码,以处置
UserLookup
实例时,可枚举的处置,同时仍然保持延迟执行?
(我确信我可以在using块内调用ToList(),它会工作得很好,我可能会这样做,但只是为了好奇)
我还应该提到someThing
是MVC视图模型上的一个属性
是否有任何方法来重新结构这段代码,以处置UserLookup实例时,可枚举对象被处置,同时仍然保持延迟执行?
您需要将您的UserLookup
实例传递给生成此序列的方法,并在处理完结果后处理它。
(我确信我可以在using块内调用ToList(),它会工作得很好,我可能会这样做,但只是为了好奇)
是的,这将导致在UserLookup
被处置之前完全执行enumerable,并避免这个问题。