2012-07-18 19 views
0

我想調試一些代碼,因爲一個類在調用時拋出一個異常。
的代碼是:Visual Studio不進入相同項目的構造函數

public TrackingStrategy1(string Name, RobotGeometry geometry) 
    { 
     trackSystem = new TrackSystem(geometry, Name); 
    } 

它調用(在同一個項目):

public TrackSystem(RobotGeometry geometry, string Name) 
    { 
     finder = new FindModel(geometry); //breakpoint inserted here fails 
     finder.InitModel(); 

     finder.useGPU = false; 
    } 

我得到異常「未找到方法:TrackSystem.FindModel..ctor(RobotGeometry)。但是,此時插入的斷點不會被擊中。如果我將新行註釋掉,我會在下一行獲得相同的例外。

FindModel在解決方案中包含的另一個項目中引用,該項目已重新引用幾次,然後進行重建。

爲什麼Visual Studio不停止插入此構造函數中的斷點?

+1

這是什麼語言? C#?這絕對不是C++。 – AnT 2012-07-18 00:31:22

+0

@AndreyT:先發制人地標記爲C#。它也可以是Java,但「Visual Studio 2010」的標籤表明它是基於函數簽名語法的C#。 – 2012-07-18 00:43:00

+0

我標記了C++嗎?我一定是睡着了。 C#是正確的。 – 3Pi 2012-07-18 00:45:51

回答

0

在加載每個類之前,Visual Studio正在檢查是否存在所有外部dll方法調用。
因爲這發生在構造函數被調用之前,所以構造函數中的斷點永遠不會被調用。

在這種情況下,失敗的原因是2個不同的項目引用了不同版本的FindModel - 並且在構建中使用了該項目的錯誤版本。

相關問題