При реализации IDisposable я обязуюсь, чтобы каждый метод, который не должен был вызываться после размещения объекта, должен выбросить ObjectDisposedException
. Но каков стандарт для объекта name, который должен быть передан конструктору исключения?
Что следует передавать как objectName при бросании ObjectDisposedException?
Ответ 1
Я считаю, что рекомендуемая практика заключается в том, чтобы бросить следующее:
throw new ObjectDisposedException(GetType().FullName);
Или включая проверку этих двух строк кода вверху каждого метода, который ему нужен (очевидно, не самого метода Dispose
):
if (this.disposed)
throw new ObjectDisposedException(GetType().FullName);
Возможно, будет полезно реорганизовать это в крошечный метод для удобства использования.
Ответ 2
Даже сама .NET Framework здесь не очень последовательна.
Дэвид М. Кин (бывший разработчик команды FxCop в Microsoft) добавил комментарий к
Ответ 3
Я не верю, что есть стандарт для этого, я бы вернул тип объекта вместе со строковым содержимым уникального идентифицирующего поля ( "Основной ключ" ).