2010-10-12 6 views
5

Ho interrotto LinqPad mentre creavo qualcosa di leggermente meno che banale. Non voglio riavviarlo fino a quando non sono sicuro che non comprometterà il recupero del mio lavoro (se possibile). La mia domanda è: LinqPad scrive file temporanei che potrebbero ancora contenere il codice che ho scritto?LinqPad si è appena schiantato contro di me. Il mio codice è ovunque sul disco?

Ai posteri, ecco un banco di prova che si blocca ogni volta LINQPad (anche scritto sul LinqPad forum):

void Main() 
{ 
    Crasher.Crash(); 
} 
class Crasher 
{ 
    public static void Crash() 
    { 
     var a=0; 
     Crash(); 
     a++; //let's get something in the tail so compiler 
      //doesn't optimise tail recursion and prevent 
      //stackoverflow 
    } 
} 

risposta

6

Prima dell'incidente hai capita di eseguirlo una volta? Se così fosse sarebbe stato compilato e dovrebbe essere disponibile come dll che è possibile aprire con .NET Reflector.

Controllare la cartella Temp LINQPad, ad esempio: C:\Documents and Settings\username\Local Settings\Temp\LINQPad. Ordina i file per data di modifica quindi controlla alcune delle DLL in Reflector fino a trovare la query. Probabilmente non sarà simile alla tua query esattamente, ma dovrebbe essere abbastanza buono da poter salvare il tuo codice.

AGGIORNAMENTO: una funzionalità di ripristino automatico è stata aggiunta a LINQPad (Beta, al momento della stesura di questo documento). Per quanto ne so, è stato disponibile nel Beta version già nella versione v4.28.3. Prendi la beta per approfittarne, o potrebbe essere già nella versione di rilascio per i futuri lettori di questo post. Se LINQPad viene avviato dopo l'arresto anomalo, verrà visualizzata una finestra di dialogo in cui viene chiesto se si desidera ripristinare o meno le query non salvate.

+0

Si rock. Grazie. – spender

+0

@spender grazie. Vedi il mio aggiornamento :) –

+1

Ottime notizie. Per essere onesti, non si è mai schiantato di nuovo su di me. Joe mi ha gentilmente spiegato che lo stackoverflow è un errore che non può impedire di eliminare LinqPad ma che la mia situazione lo aveva spinto a includere questa funzionalità. LinqPad è una rarità tra prodotti in cui non mi sento punto quando divento un utente pagato. – spender