[英]Visual Studio Watch window not taking into account usings
我在視圖模型中有以下代碼:
public Point Location
{
get
{
var rangePixels = Range * PixelsPerMile;
var xCoordinate = OwnLocation.X * MapScale + rangePixels * Math.Cos(Theta);
var yCoordinate = OwnLocation.Y * MapScale - rangePixels * Math.Sin(Theta);
return new Point(xCoordinate, yCoordinate);
}
}
代碼文件頂部的一個用法是System
,它包含Math
。
如果我在Watch窗口中查看Math.Sin(Theta)
(通過選擇代碼,右鍵單擊並選擇“Add Watch”),我收到以下錯誤:
當前上下文中不存在名稱“Math”
我想知道的是:
我應該注意到這個問題與此類似,但我沒有任何問題將鼠標置於我的局部變量上,而且我沒有使用PostSharp。
編輯
我只是嘗試將我的所有Visual Studio設置重置為默認值,但我仍然遇到同樣的錯誤。 如果有人想在Visual Studio中嘗試一個簡單的測試,我只想知道如果你為Math.Sin(1)
添加一個手表就會出現錯誤。
編輯2
這里有幾個屏幕截圖,以顯示我正在經歷的:
編輯3
有趣的是,如果我輸入Math.
,intellisense就有效Math.
進入Watch窗口,但如果我完成表達式,我仍然會收到錯誤:
編輯4
解決BACON的問題:
罪魁禍首似乎是執行IL編織的第三方庫(Fody.PropertyChanged)。
如果我創建一個沒有這個庫的新WPF項目,我可以在Watch窗口中使用Math.Sin()
。 安裝PropertyChanged
,我開始收到“在此上下文中不可用”錯誤。
感謝@BACON引導我走上正確的道路來解決這個問題。
這是我在PropertyChanged網站上發布的問題的鏈接:
http://code.google.com/p/propertychanged/issues/detail?id=6&thanks=6&ts=1330494634
編輯
隨后,事實證明這可能是Mono-Cecil中的一個錯誤,PropertyChanged使用它:
我是在一個litte測試應用程序中,在構造函數中完成的。
試着把手表放在數學上可以讓我看到E和PI的值。 你不能把一個放在罪上。 把一個放在val上就可以了。
所以,不,我不認為這是正常的,除非你點擊了錯誤的名字。 即,不是變量,而是“罪”部分......
這是我突出整個事情的地方......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.