Предположим, у меня есть следующие классы:
public class DisposableObj : IDisposable
{
public ChildObj CreateObj();
internal object GetSomething();
// ...
}
public class ChildObj
{
private DisposableObj m_provider;
public void DoSomething()
{
m_provider.GetSomething();
}
// ...
}
Возможно, что в какой-то момент одноразовый объект будет удален, но дочерний объект все равно будет иметь ссылку на него.
Если в это время пользователь вызовет метод DoSomething
, тогда дочерний объект попытается получить доступ к удаленному объекту. Это не хорошо, поэтому вопрос:
Как правильно проектировать такие классы?
UPDATE / ПОЯСНЕНИЯ:
Мне известно об исключении ObjectDisposedException и всем остальном. Мой вопрос, вероятно, должен звучать так: как правильно уведомить пользователя об исключительной ситуации и как спроектировать классы, чтобы упростить их обслуживание?