好的,我有一个ASP.Net网站项目。该项目驻留在网络上的服务器上,由Visual Studio 2008通过文件共享访问。
在网站项目中,我将web引用添加到我之前创建的Web服务中 我可以通过winforms应用程序使用这个web服务,没有任何问题。
但是当我尝试在我的代码中引用Webservice时,没有出现intellisense,并且服务名称在Visual Studio中得到红色下划线并且说“找不到类型或命名空间名称'IMWebService'你是否错过了汇编参考或使用指令?“
但是,如果我知道webservice方法的确切方法签名,我可以输入它,将其保存到Web服务器,并且它可以正常工作。例如:
bool test = Contractor.CheckLogin(email, password);
如何让我的Visual Studio像网站一样识别服务?
答案 0 :(得分:4)
我遇到过这个问题,仅隔离到通过“Web引用”创建的类。一种解决方案是清除bin和obj文件夹并重新启动Visual Studio。这并不总是有效,所以也许它不是一个“解决方案”,但有时Intellisense会在那之后发现。我还尝试打开Web服务的自动生成代码并进行修改,然后保存。这似乎启动了Intellisense观看该文件。我做的其他任何事情似乎都没有效果。
答案 1 :(得分:1)
检查名称空间,可能存在问题。如果输入全名,请在其下面找到小红框。
如果它不起作用,你可能已经破坏了Intellisense,因为我每天都使用它并且它有效。
答案 2 :(得分:1)
您可以尝试从临时区域为您提供的Web服务客户端拉出自动生成的代码并将其添加到您的实际项目中
答案 3 :(得分:1)
使用网络应用程序项目而不是网站。
档案 - >新 - >项目 - > C# - >网络 - > ASP.NET Web应用程序
这将解决您的问题以及其他问题。
网站项目已旧,无效。
答案 4 :(得分:1)
帮助缩小问题的范围:
答案 5 :(得分:1)
一旦我遇到同样的问题,我只需右键点击visual studio中项目资源管理器中的refrence文件夹,选择Refresh,然后在2或3分钟后,intelisense出现并正常工作..我认为它需要一些时间来下载架构和Web服务类信息或类似的东西。
答案 6 :(得分:0)
将以下行放在代码文件的顶部:
using Contrator;
如果Visual Studio没有提供intellisense,但是当您使用完全限定名称时代码会编译,那么您可以相当确信在using语句中添加名称空间将解决问题。
如果您没有在文件顶部指定名称空间,IDE将不知道如何解析该类型。