首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有链接的.CS文件和WCF服务的不明确引用

具有链接的.CS文件和WCF服务的不明确引用
EN

Stack Overflow用户
提问于 2009-07-30 00:45:40
回答 4查看 2.7K关注 0票数 2

为简洁起见,本文涉及Silverlight文件中的不明确引用,该文件的项目包含对Page.XAML.CS服务的服务引用和作为“链接”添加的MyClass.cs文件。该解决方案包含Silverlight项目和一个Web项目,该项目包含一个WCF服务和一个MyClass.cs文件(以及aspx文件等)。

由于某些原因,一旦我将服务引用添加到Page.xaml.cs中,我就会收到不明确的引用错误。在为服务引用添加using语句之前,我有一个用于MyClass.cs的语句(记住,它是作为链接添加到SL项目中的)到页面,它运行得很好。一旦添加了SVC引用,编译器就会抱怨我调用'MyClass.cs中的任何类/属性时的歧义,以至于对MyClass.Class的引用对'ServiceReference.MyClass.Class...Seems‘变得不明确,对我来说非常陌生。

假设和澄清

我确保没有名称空间、类名、方法或变量具有类似的名称

WCF服务必须驻留在web应用程序中才能访问其他非Silverlight程序集等

Silverlight项目中的其他.cs文件引用MyClass.cs,否则我将简单地删除到MyClass.cs的链接,并允许通过服务引用引用MyClass.cs。

我的假设是,这与添加文件作为链接有关吗?有没有KungFu大师能够提供一些关于为什么会发生这种情况的见解,作为链接文件添加的替代方案,还有其他想法吗?

EN

回答 4

Stack Overflow用户

发布于 2009-07-30 02:41:17

MyClass是您为其添加了服务引用的服务使用的类吗?如果为true,则MyClass.cs中的每个类有两个版本:一个来自MyClass.cs,另一个来自服务引用。

你应该选择其中一个-要么使用服务,要么不使用服务。

票数 2
EN

Stack Overflow用户

发布于 2009-07-30 04:26:09

如果您在Silverlight和Web项目中都添加了"MyClass.cs“作为链接,那么很可能会导致名称冲突,幸运的是,它们应该位于不同的名称空间中。链接的类将位于原始命名空间中,而由服务引用生成的类将位于生成的命名空间中。

您可以在生成服务引用时使用"Reuse Types in Reference Assemblies“选项,以便生成的服务代理使用您的链接类,而不是生成新的类。然而,有几个技巧可以让它正确工作,我在几个月前的一篇文章Resuing types in Silverlight Service References中概述了这些技巧。

我希望这能帮到你。

票数 2
EN

Stack Overflow用户

发布于 2009-07-30 14:19:01

奈杰尔·桑普森的回答让我找到了正确的方向,非常感谢!

该解决方案为类文件创建一个新项目,并在您的Silverlight项目中添加对该项目的引用。然后,当您广告您的服务引用并选择“重用引用的程序集中的类型”时,它将不会生成它自己的类实现,从而消除了不明确的引用。

与典型的客户端/服务器服务场景不同,对于Siverlight和ASP.NET,类文件必须分别编译。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1203875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档