При реализации IDisposable я undertand, что каждый метод, который нельзя назвать после объекта, был расположен, должен бросить ObjectDisposedException
. Но каков стандарт для объекта имени, который должен быть передан конструктору исключения?
Полагаю, что рекомендуемая практика заключается в том, чтобы бросить следующее:
throw new ObjectDisposedException(GetType().FullName);
Или, включая проверку, эти две строки кода вверху каждого метода, который в них нуждается (очевидно, что сам метод Dispose
):
if (this.disposed)
throw new ObjectDisposedException(GetType().FullName);
Может быть даже полезно перевести это в крошечный метод для удобства использования.
.Даже сама NET-структура здесь не очень последовательна.
Дэвид М. Кин (бывший разработчик команды FxCop в Microsoft) добавил комментарий к документации MSDN для ObjectDisposedException:
Типичное использование этого типа - что-то вроде следующего:
[C#] private void CheckDisposed() { throw new ObjectDisposedException(GetType().FullName); }
Я не верю, что для этого есть стандарт, я бы вернул тип объекта вместе со строковым содержимым уникального идентификационного поля ("Primary Key" вроде).
.