我的设置是这样的:
域模型项目=>包含我的实体。与服务器和客户端应用程序共享。
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图标,如图所示:
我是VS2012的新手,所以它可能是微不足道的。 关于那个图标的任何想法?或者为什么会发生这种情况?
如需进一步说明,请发表评论并进行编辑。
答案 0 :(得分:4)
这个奇怪的蓝色图标表示该财产受到保护。如果属性是私有的,您将获得一个停止符号。这些图标与变量Windows中出现的较小图标不同(私有挂锁,受保护星标)。
您可以在此处查看图标列表: http://msdn.microsoft.com/en-us/library/y47ychfe.aspx
虽然该列表不会容纳将鼠标悬停在变量上时显示的较大图标,例如您已截断的蓝色图标。我真的想知道不同的图标是否是视觉工作室中的错误。对变量窗口和context / treeviews使用相同的图标似乎更有意义。
如果您遇到MissingMethodException,那么它实际上意味着您正在调用旧版本的程序集。你有没有组装大会?也许旧版本在GAC中并且正在接受它。
如果有任何缓存内容(例如IIS)
,您也可以尝试回收或重新启动答案 1 :(得分:0)
以下其中一项(或其混合!)解决了我的问题:
bin
和obj
个文件夹(我认为就是这样!)我会把这个留给遇到同样问题的未来读者。