WCF – 无法解析符号 – 我做错了什么?

我正在开发一个REST WCF项目,当我实现以下代码时,它抱怨它无法解析WebGet类? 我错过了什么?

我尝试导入System.ServiceModel.Web命名空间,但即使我引用它也无法找到它。 System.ServiceModel.Web中的“Web”在我在代码顶部的using语句中注册时不会注册。

基本上,我需要什么来实现这样的WCF REST概念,如WebGet,WebInvoke,UriTemplate等?

更新:经过一些反馈并稍微考虑一下我做了什么,似乎当我去的时候,DLL(System.ServiceModel和System.ServiceModel.Web)没有通过’Add Reference’窗口出现添加项目参考。 当我第一次启动项目时,仅供参考,因为这些程序集最初没有出现,我去“搜索”它们,并将它们复制到临时文件夹,以便我可以引用它们,因此,我想我有解决问题。 那么,既然我现在已经到了这一步,我怎样才能让我的VS识别/注册这些WCF REST DLL? 谢谢!

更新:我相信我对所有内容都进行了更新:在VS 2008 SP1上开发 – 我尝试下载最新的SP,下载REST预览2入门套件,针对3.5 Framework进行开发,尝试最终创建WCF REST层由Silverlight 2客户端使用。

这就是我所拥有的:

using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; using UtilityClasses; using Microsoft.ServiceModel.Web; using Microsoft.Http; namespace WcfRestService { [ServiceContract] public interface IRestService { [OperationContract(Name = "Add")] [WebGet(UriTemplate = "/")] // ** can't compile here ** int Add(); } } 

任何建议将不胜感激。

这也发生在我身上。

我这样做了:

  1. 从References中删除System.Service.Web
  2. 建立
  3. 清洁项目
  4. 将System.Service.Web添加到引用
  5. 建立

..和VS发现了吗?

您需要引用System.ServiceModel.Web DLL。

右键单击项目中的“References”文件夹,然后选择“Add Reference …”。 向下滚动到System.ServiceModel.Web并单击“确定”。

只有一个想法,您可能将您的项目定位到.Net客户端配置文件,它公开了有限的命名空间。 您可能需要检查项目属性中的目标框架设置。

我已经面临着一个WCF项目没有找到System.ServiceModel.Web,直到我改变了默认的框架设置。

HTH

在“项目属性”中,确保将“目标框架”设置为:.NET Framework 4

而不是:.NET Framework 4 Client Profile,或任何较低的.NET版本。

另外,如果可能的话使用VS 2010。

–DBJ

  1. 右键单击项目名称,然后选择“属性”。
  2. 将目标框架更改为.NET Framework 4。
  3. 右键单击“引用”,然后选择“添加引用”。
  4. 然后你可以看到System.ServiceModel.Web。

默认情况下,目标框架是.NET Framework 4 Client Profile,因此您无法找到System.ServiceModel.Web。

我有同样的问题。

我添加了这个缺少的参考:

System.ServiceModel.Web

这个代码行:

 using System.ServiceModel.Web; 

一切都解决了! ;)

使用System.ServiceModel.Web;

在我的情况下,我的项目正在构建,尽管在服务类的设计器视图中出现此警告。 这不是一个大问题,但仍然很烦人。 意识到只是ReSharper正在播放 – 当我添加新的WCF服务时,VS自动添加对System.ServiceModel的引用时,它没有更新其内部缓存。 我关闭了实时代码分析:

工具 – >选项 – > Resharper Ultimate – >选项 – >代码检查 – >设置 – >启用代码分析

这恢复了内置的VS代码分析,问题立即得到解决。

如果您希望继续使用ReSharper代码分析,请在以下位置清除缓存:

工具 – >选项 – > Resharper Ultimate – >选项 – >环境 – >常规 – >清除缓存

也可以对问题进行排序。