2012-06-28 31 views
0

我有最奇怪的問題。實例化我的角色提供一個快速測試,我運行下面的修改操作方法:爲什麼我的變量在操作方法中對調試器不可見?

public ActionResult Login() 
{ 
    Educ8RoleProvider p = new Educ8RoleProvider(); 
    var model = new LoginModel(); 
    return View(model); 
} 

角色提供看起來或多或少是這樣的:

public class Educ8RoleProvider : RoleProvider, IDisposable 
{ 
    private readonly IMemberRoleRepository _memberRoleRepository = new MemberRoleRepository(); 

    public Educ8RoleProvider() 
    { 
    } 
} 

Login代碼的執行沒有任何異常,但是當我在行var model = new LoginModel();上放置一個斷點時,變量p已經消失。我得到同樣的錯誤嘗試,因爲我想考察它在即時窗口中放置一個快速監視上p

The name 'p' does not exist in the current context 

今天早上,我從VS11測試版頂VS2012 RC升級。我不知道這是否可能是由於某處或某處的新環境。

添加:我發現我不知怎的偏離了我的調試配置到基於版本的一個。

+1

這聽起來像調試符號加載不正確。我不建議將它作爲第一步,但可能需要徹底卸載/重新安裝。這裏是一篇文章,以檢查您的符號從哪裏加載或指定位置:http://msdn.microsoft.com/en-us/library/x54fht41.aspx –

回答

0

我的猜測是它已被優化 - 畢竟,你不是使用它的任何東西。我希望它可以在調試版本上正常工作,但是爲了優化版本而不用考慮。 (當然,仍然應該調用構造函數。)

我問你是否應該擁有它,如果你不打算使用它,介意你 - 這是至少的代碼味道。

如果這真的是一個「實例化[你的]角色提供者的快速測試」,我可以推薦單元測試嗎? :)

+0

謝謝喬恩,我確實回來寫一些適當的單元測試,但我真的只需要一個非常快速和骯髒的檢查,直到我發現這個問題。請參閱我的編輯。 – ProfK

0

奇怪。唯一值得一提的是,VS2012可能會在上次引用變量時超出範圍。你有沒有嘗試過放入一行來訪問p後,看看它是否讓你看它呢?

相關問題