【发布时间】:2009-04-24 22:15:42
【问题描述】:
我有一个IEnumerable<IDisposable> 集合,我需要在给定点处理它。问题在于,在某些情况下,所有对象都属于一种类型,并且需要通过从对象中收集一些数据并进行一次 RPC 调用来处理对象。在其他情况下,对象将是另一种类型,我只需要对它们中的每一个调用 Dispose。
我控制执行此操作的代码,但我不想将实现细节推入其中。
如果需要,我可以切换到类似的东西,但它似乎不优雅。
with(var rpc = new RPCDisposer())
{
foreach (var item in Items)
{
rpc.Add(item);
item.Dispose();
}
}
编辑:列表(目前)将只包含一种类型或另一种类型,绝不会同时包含两者。但我宁愿 Dispose 代码根本不必知道 RPC 的东西,例如:
foreach (var item in Items)
item.Dispose();
【问题讨论】:
-
您发布的内容确实不是那么糟糕的解决方案。老实说,我认为您正在寻找不存在的东西。使用您的初始解决方案并可能使用 LINQ 来简化它,但仅此而已。
-
我有一半的预期,但只是希望有更好的东西。
标签: .net idisposable rpc