2009-12-26 9 views

risposta

39

Credo che la pratica raccomandata è quello di gettare il seguente:

throw new ObjectDisposedException(GetType().FullName); 

o comprendente la verifica, queste due righe di codice nella parte superiore di ogni metodo che (non ovviamente il metodo Dispose stesso) ha bisogno:

if (this.disposed) 
    throw new ObjectDisposedException(GetType().FullName); 

Potrebbe anche essere utile ricondizionarlo in un piccolo metodo di usabilità.

+0

Inoltre, si prega di vedere questa domanda e la mia risposta per le linee guida generali: http://stackoverflow.com/questions/668440/handling-objectdisposedexception-correctly-in-an-idisposable-class-hierarchy – Noldorin

1

Non credo ci sia uno standard per questo, vorrei restituire il tipo dell'oggetto insieme al contenuto stringa di un campo identificativo univoco (una 'chiave primaria' di sorta).

12

Anche lo stesso .NET Framework non è molto coerente qui.

David M. Kean (ex sviluppatore del team di Microsoft FxCop) ha aggiunto un commento alla MSDN documentation for the ObjectDisposedException:

L'utilizzo tipico di questo tipo è qualcosa di simile al seguente:

[C#] 
private void CheckDisposed() 
{ 
    throw new ObjectDisposedException(GetType().FullName); 
} 
+0

Mi è mancato. Mut impara anche a leggere i commenti nella documentazione. – Wilhelm

+0

Non preoccuparti, ora non c'è più. –

+1

@JonathonReinhart: il commento è stato ovviamente rimosso dalla versione 4 .NET della pagina. Ho corretto il collegamento sopra in modo che si riferisca alla versione 3.5 .NET che include il commento citato. – Albic

Problemi correlati