Подобные вопросы сложно. Общее правило заключается в том, что владелец объекта IDisposable
отвечает за вызов Dispose
. Когда я вижу такой метод, как GetData
, я сразу же думаю, что его семантика подразумевает передачу права собственности на объект IDisposable
от вызываемого к вызывающему. Так что да, я бы предположил, что вы несете ответственность. Теперь, с другой стороны, если бы вместо этого было свойство с именем Data
, я бы тогда предположил, что право собственности по-прежнему принадлежит содержащему объекту, поскольку свойство имеет общую семантику предоставления доступа к удерживаемому экземпляру. Проблема заключается в том, что разработчики API часто непоследовательны в определении того, кто является владельцем, и именно поэтому я говорю такие вопросы, как это сложно. Но, опять же, я думаю, что можно с уверенностью предположить, что в этом случае вам следует звонить Dispose
.