У меня есть коллекция IEnumerable<IDisposable>
, которую мне нужно удалить в данный момент. Проблема в том, что в некоторых случаях все объекты будут одного типа, и удаление объектов необходимо выполнить путем сбора некоторых данных из них и выполнения одного вызова RPC. В других случаях объекты будут другого типа, и мне просто нужно вызвать Dispose для каждого из них.
Я управляю кодом, делая это, но я бы не стал вдаваться в детали реализации.
Если мне нужно, я могу переключиться на что-то подобное, но это кажется не элегантным.
with(var rpc = new RPCDisposer())
{
foreach (var item in Items)
{
rpc.Add(item);
item.Dispose();
}
}
Редактировать: список (на данный момент) будет содержать только один тип или другой, но не оба одновременно. Но я бы предпочел, чтобы код Dispose вообще не знал о материалах RPC, e.i.:
foreach (var item in Items)
item.Dispose();