方法被跳过?

时间:2015-05-28 16:10:00

标签: c# windows forms

确定。我遇到的问题有点难以解释,但基本上我的问题是正在跳过负责填充数据集的方法。调试器会遇到有问题的代码行,但会跳过它。没有机会踩到或没有。

// Class A
private myTableDS _dsTable; // myTableDS.xsd
private classB _clsB; 

protected override void OnLoad(EventArgs e)
{
   if (_dsTable == null)
   {
       _dsTable = _clsB.LoadThisTable(); // The culprit
   }

   // More logic here. Mindblowing. It is. 
}



// Class B
public myTableDS LoadThisTable() 
{
   // Magic here
}

因此调试器命中行_dsTable = _clsB.LoadThisTable();并跳出。将我带回到首先调用“onload”的代码中的下一行。因此,_dsTables = _ASIO.LoadASTables();下面的任何和所有逻辑都会被跳过。

思考?

1 个答案:

答案 0 :(得分:0)

通常,当调试器跳过代码时,它与线程有关(这里似乎不是这种情况),类型加载异常(缺少程序集)或代码的不同版本正在部署而不是被调试。

如果后一种情况出现问题,解决方案是确保最新的程序集实际部署到您正在调试的环境中。

另外,尝试在myTableDS.LoadThisTable()中添加Debbugger.Launch()语句并设置Visual Studio,以便在抛出异常时(不仅仅是未处理的)调试器中断。