0

我的设置是这样的:

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

  • Server/webservices => MVC WebAPI,数据以 JSON 形式返回,使用 Json.Net 库。

  • Client => C# Winforms 应用程序,使用 RestSharp 和 Json.Net 库检索数据。

在说明了我的设置之后,我想声明我的设置正在运行,直到最近的一些更改才出现问题。

我向我的一个实体(域模型项目)添加了一些新属性,修改了我的 web 服务以利用执行的更改,然后重新启动。好的,它起作用了,返回的 JSON 还告诉我正在正确处理新字段。

到目前为止,一切都很好。现在,客户端部分。我已经调试了从服务器接收到的 JSON,并且新数据(具有新属性)很好。但是,当 Json.Net 尝试将数据解析为实体时,只会显示一些属性。当我尝试用数据填充我的数据时,我得到MissingMethodException

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

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

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

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

奇怪的图标

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

如需进一步解释,请发表评论,我将进行编辑。

4

2 回答 2

4

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

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

尽管该列表不包含当您将鼠标悬停在变量上时出现的较大图标,例如您截屏的蓝色图标。我实际上想知道不同的图标是否是视觉工作室中的错误。对变量窗口和上下文/树视图使用相同的图标似乎更有意义。

如果你得到一个 MissingMethodException 那么它真的意味着你正在调用旧版本的程序集。你 GAC 大会了吗?也许 GAC 中有一个较旧的版本,它正在接受它。

您也可以尝试回收或重新启动,以防有任何缓存的东西(例如 IIS)

于 2013-10-18T15:39:19.600 回答
0

以下之一(或它们的混合!)解决了我的问题:

  • 删除项目并重新添加。
  • 打扫
  • 删除binobj文件夹(我想就是这样!)
  • 重建
  • 重启VS
  • 重新启动

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

于 2013-10-18T17:09:48.003 回答