LinqPad刚刚撞上我.我的代码在磁盘上的任何位置吗?

spe*_*der 5 crash linqpad

我在制作一些稍微不那么微不足道的东西时撞毁了LinqPad.我不想重新启动它,直到我确定不会危及恢复我的工作(如果可能的话).我的问题是:LinqPad是否写了临时文件,可能仍然包含我编写的代码?

对于后人来说,这是一个每次都崩溃LinqPad的测试案例(也发布到LinqPad论坛):

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
    }
}
Run Code Online (Sandbox Code Playgroud)

Ahm*_*eed 6

崩溃之前你碰巧运行过一次吗?如果是这样,它将被编译并且应该可以作为dll使用.NET Reflector打开.

检查LINQPad临时文件夹,例如:C:\Documents and Settings\username\Local Settings\Temp\LINQPad.按修改日期对文件进行排序,然后检查Reflector中的一些dll,直到找到您的查询.它可能不会完全类似于您的查询,但它应该足以让您挽救您的代码.

更新: LINQPad添加了自动恢复功能(Beta,撰写本文时).据我所知,早在v4.28.3 就已经在Beta版本中提供了它.获取测试版以利用它,或者它可能已经发布在此帖子的未来读者版本中.如果LINQPad在崩溃后启动它会弹出一个对话框,询问您是否要恢复未保存的查询.

  • 好消息.公平地说,它再也没有撞到我身上.Joe向我解释说stackoverflow是一个错误,他不能阻止LinqPad,但我的困境激发了他包括这个功能.LinqPad是一种罕见的产品,当我成为付费用户时,我不会感到受伤. (2认同)