VS调试器中的奇怪符号和缺少方法异常

时间:2013-10-18 15:03:52

标签: c# .net visual-studio-2012 visual-studio-debugging

我的设置是这样的:

  
      
  • 域模型项目=>包含我的实体。与服务器和客户端应用程序共享。

  •   
  • Server / webservices => MVC WebAPI和数据作为JSON返回,使用Json.Net库。

  •   
  • 客户端=> C#Winforms app,使用RestSharp和Json.Net库检索数据。

  •   

说完我的设置后,我想声明我的设置正常,直到最近的一些更改才会出现问题。

我已经为我的一个实体(域模型项目)添加了一些新属性,修改了我的web服务以利用所执行的更改并重新启动。好吧,它工作,并返回JSON也告诉我新的字段正在被处理。

到目前为止一切顺利。现在,客户端部分。 我调试了从服务器收到的JSON,新数据(带有新属性)也没问题。 但是,当Json.Net尝试将数据解析为实体时,只显示少数属性。 当我尝试使用数据填充数据时,我得到MissingMethodException

  

{“找不到方法:'System.String Domain.Equipment.get_Weight()'。”}

Weight确实是我最近的更改之一,但代码确实编译了。

我已经尝试构建,重建,删除和添加对我的域模型项目的引用,再次构建和重建,我仍然得到相同的异常错误。

但是,我在调试时注意到了一个奇怪的VS图标,如图所示:

strange icon

我是VS2012的新手,所以它可能是微不足道的。 关于那个图标的任何想法?或者为什么会发生这种情况?

如需进一步说明,请发表评论并进行编辑。

2 个答案:

答案 0 :(得分:4)

这个奇怪的蓝色图标表示该财产受到保护。如果属性是私有的,您将获得一个停止符号。这些图标与变量Windows中出现的较小图标不同(私有挂锁,受保护星标)。

您可以在此处查看图标列表: http://msdn.microsoft.com/en-us/library/y47ychfe.aspx

虽然该列表不会容纳将鼠标悬停在变量上时显示的较大图标,例如您已截断的蓝色图标。我真的想知道不同的图标是否是视觉工作室中的错误。对变量窗口和context / treeviews使用相同的图标似乎更有意义。

如果您遇到MissingMethodException,那么它实际上意味着您正在调用旧版本的程序集。你有没有组装大会?也许旧版本在GAC中并且正在接受它。

如果有任何缓存内容(例如IIS)

,您也可以尝试回收或重新启动

答案 1 :(得分:0)

以下其中一项(或其混合!)解决了我的问题:

  • 删除项目并重新添加。
  • 清洗
  • 删除binobj个文件夹(我认为就是这样!)
  • 重建
  • 重启VS
  • 重新启动

我会把这个留给遇到同样问题的未来读者。