我在 View 模型中有以下代码:
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
。如果在“监视”窗口中查看
Math.Sin(Theta)
(通过选择代码,右键单击并选择“添加监视”),则会出现以下错误:我想知道的是:
我应该注意,这个问题与this大致相似,但是我在使用本地变量时没有任何问题,也没有使用PostSharp。
编辑
我只是尝试将所有Visual Studio设置重置为默认值,但仍然遇到相同的错误。如果有人想在Visual Studio中尝试简单的测试,我只是想知道如果添加
Math.Sin(1)
监视程序是否出错。编辑2
这是几个屏幕截图,以显示我正在经历的事情:
编辑3
有趣的是,如果我在“监视”窗口中键入
Math.
,则intellisense可以工作,但是如果我完成了表达式,仍然会收到错误消息:编辑4
要解决培根的问题:
最佳答案
罪魁祸首似乎是执行IL编织(Fody.PropertyChanged)的第三方库。
如果我创建了没有此库的新WPF项目,则可以在“监视”窗口中使用Math.Sin()
。安装PropertyChanged
后,我开始收到“在此上下文中不可用”错误。
感谢@BACON引导我走上正确的道路以解决这个问题。
这是我在PropertyChanged网站上发布的问题的链接:
http://code.google.com/p/propertychanged/issues/detail?id=6&thanks=6&ts=1330494634
编辑
随后,事实证明这可能是Mono-Cecil中的一个错误,PropertyChanged使用该错误:
https://github.com/jbevain/cecil/issues/90