При реализации 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
Я не верю, что есть стандарт для этого, я бы вернул тип объекта вместе со строковым содержимым уникального идентифицирующего поля ( "Основной ключ" ).