.NET 3.5 Dispose chiave di registro

Ho il codice seguente:

RegistryKey installKey = Registry.LocalMachine.OpenSubKey(installKey); 

Sto eseguendo uno strumento di analisi statica sul mio codice e mi sta dando un difetto dicendo che sto tornando da Medthod senza disporre di installKey . So che puoi chiamare Dispose () su RegistryKey in .NET 4.0 o versioni successive ma il mio codice gira su .NET 3.5.

Qualcuno conosce il modo migliore per eliminare questo RegistryKey e mantenere il mio strumento di analisi statico felice?

Dovresti avvolgere il tuo codice all’interno di un blocco using , che implicitamente chiamerà Dispose per te. Non è chiaro quale strumento di analisi statica stai utilizzando, ma si spera che comprenda l’ using :

 using (RegistryKey installKey = Registry.LocalMachine.OpenSubKey(installKey)) { // Your code here } 

Nota che puoi anche chiamare Dispose esplicito, ma devi prima eseguire il cast di RegistryKey su IDisposable :

 ((IDisposable)installKey).Dispose() 

Ovviamente può essere smaltito nella versione 3.5! Vedi la documentazione qui .

Utilizzare un blocco using , come nell’esempio MSDN qui , o semplicemente chiamare Dispose () come in qualsiasi altro object IDisposable.