想,我有以下類別:如何正確地設計與可支配對象的內部引用的對象
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和所有的。我的問題聽起來應該是這樣的:如何正確地通知用戶異常情況以及如何設計類以使其更容易維護?
*不可*不可*引用一個已處理的對象。你無法處理它。正確實現的一次性類引發ObjectDisposedException,您不必提供幫助。 – 2012-03-17 15:41:45
@HansPassant我完全清楚,子對象必須具有對父對象的引用。問題是:如何正確通知用戶異常情況以及如何設計類以使其更容易維護。 – Bobrovsky 2012-03-17 16:39:49