我正在编写一个WPF客户端,它使用来自ASP Web服务的服务(VS2010,.net 4.0)。它一直工作得很好,直到昨天我突然得到上面的编译器错误。双击错误将我带到Reference.cs并突出显示以下内容:
[System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false,Order=2)]
(The“Runtime”对象突出显示为不在MyAppNameSpace中)。
我试着在谷歌上搜索这个,重新添加服务引用,重新添加assemby引用,但没有任何效果,我完全卡住了。Reference.cs是自动生成的,我对VS2010还比较陌生,所以我不知道该怎么做。
希望这里有人能给我指个方向...?
7条答案
按热度按时间pftdvrlh1#
我也遇到了同样的问题。在花了几个小时试图解决这个问题后,我意识到我的图书馆里有一门叫做系统的课。真是个混蛋。
nc1teljy2#
你的问题是,你已经定义了一个“系统”命名空间,编译器和智能感知在真实的的“系统”之前找到了它。解决方案是删除违规的命名空间,然后清理并重建项目。
ua4mk5z43#
我在VB项目中遇到了同样的问题,只是我没有旧代码,因为它是一个新的服务引用。我没有任何其他名称空间中的System。对我来说,解决方案是进行以下一系列替换:
Reference.vb中的VB
1.将
System.
替换为空1.然后将
"Runtime.Serialization"
替换为"System.Runtime.Serialization"
1.最后,将
<Global.ComponentModel
替换为<ComponentModel
**C#**in Reference.cs(我没有尝试过,但希望它能工作)
1.将
System.
替换为空1.然后将
"Runtime.Serialization"
替换为"System.Runtime.Serialization"
1.最后,将
[Global.ComponentModel
替换为[ComponentModel
另一个可能导致根本原因的细节是,服务wsdl来自老式的asp.netWeb服务(.asmx),如下所示:https://api.mindbodyonline.com/0_5/ClassService.asmx?wsdl
更新我随后发现,将目标框架更改为4.5.1解决了我的编译问题。另外,我的根本原因是我的Web项目和包含我的服务引用的类库针对的是不同的框架版本。一旦我将它们全部更改为4.5.1,一切都很高兴,不需要更改Reference.vb。
wh6knrhe4#
好吧,为了任何人在未来寻找答案的缘故-我放弃了试图修复它,并复制了项目文件的备份在现有的,并带来了更改,因为他们在手动.这修复了损坏的引用问题.
z6psavjg5#
我遇到了类似的问题,但有不同的解决方案。
我的项目以前叫做“JobRunner”,但是它变成了“NGB.JobRunner”。然而在项目设置中,默认的命名空间和程序集名称仍然是“JobRunner”,并且Reference.cs文件是用这个命名空间生成的。
我不知道为什么它会导致问题,但是当我修复了默认的项目名称空间和程序集名称,并重新添加了服务引用时,问题解决了!
gab6jxml6#
我遇到了类似的问题。是大写的'T'在时间上导致了这个问题。我正在运行时,但正确的是'运行时'。
由于一个错字,真是浪费时间!!
ffscu2ro7#
您需要使用**
global
**关键字。这将强制命名空间解析从最顶部开始。一些文档:https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/namespace-alias-qualifier