【问题标题】:.Net webservice with name clash.Net 网络服务名称冲突
【发布时间】:2011-03-22 15:34:04
【问题描述】:

我无法在 Web 应用程序中引用 .Net Web 服务。出现问题是因为 web 服务有另一个对外部 dll 的引用,该 dll 的类名与 web 服务本身中的一个类相同。一旦我将该 Web 服务添加到我的 Web 应用程序项目中,我就会从生成的类中得到编译错误。它在网站项目中运行良好(至少它可以编译)。但是,如果我理解正确,网站项目与 Web 应用程序项目不同,它会在运行时编译代码。网络服务会在那种项目中工作吗?更重要的是,如果它们共享一个相同的类名,我如何在我的 web 服务中包含外部 dll?

谢谢

【问题讨论】:

  • 我不太清楚你说 "get compilation errors from the generated class 是什么意思。它工作正常一个网站项目” 它是否有效?你得到的确切编译错误是什么?

标签: .net web-services web-applications


【解决方案1】:

当您在 Visual Studio 中添加服务引用时,您会在 Add Service Reference 窗口底部的 Namespace 字段中添加服务引用。在此处输入不同的命名空间。

如果您遇到 Ambiguous Types 错误,请指定所需类的完全限定名称。

示例:使用名称​​“MyService”

添加您的服务引用
Display(MyService.Product);

Display(MyProjectNamespace.Product);

【讨论】:

  • 感谢您的回复。问题是这两个类都在同一个 Web 服务中,因此向 Web 服务添加名称空间实际上并没有帮助,因为它们最终都在那里。
  • @leon 好的。怎么可能是真的?发布有关您的问题的更多详细信息(您可以对其进行编辑)这是什么类型的服务? WCF? asmx?一个 Web 服务如何公开两个相同的类型?
  • 这是一个 ASMX。 Web 服务引用了一个具有 A 类的 dll。如果 Web 服务也在不同的命名空间下定义了 A 类,这不会导致冲突吗?
  • @Leon 是的,可能,但是只要 Visual Studio 给你一个 ambiguous type 错误,右键单击它,就会有一个选项可以将其更改为完全限定名称,使用整个命名空间。这是我认为你可以让它工作的唯一方法..
猜你喜欢
  • 2020-02-16
  • 2012-06-04
  • 2013-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多