【发布时间】:2009-06-05 04:39:18
【问题描述】:
我有 2 个应用程序都引用了 AppTypes.dll 程序集。一个应用是普通的 winforms 应用,另一个是 Web 服务。
我将 AppTypes 中定义的对象传递给我的 Web 服务,但我遇到了命名冲突,因为显然 Web 服务在将服务添加到我的项目后也定义了这些类型。有什么方法可以修复它或解决 VS 的困惑或这是否正常?
【问题讨论】:
标签: c# web-services namespaces
我有 2 个应用程序都引用了 AppTypes.dll 程序集。一个应用是普通的 winforms 应用,另一个是 Web 服务。
我将 AppTypes 中定义的对象传递给我的 Web 服务,但我遇到了命名冲突,因为显然 Web 服务在将服务添加到我的项目后也定义了这些类型。有什么方法可以修复它或解决 VS 的困惑或这是否正常?
【问题讨论】:
标签: c# web-services namespaces
使用网络服务代理,您可以在添加网络引用时选择命名空间,或通过wsdl.exe /namespace。但是,这些将是不同的类型,您不能将两者视为相同。这通常会引起很多混乱......
如果您想共享这些类型,请考虑使用 WCF 而不是 2.0 样式的 Web 服务,这允许通过 IDE 和 svcutil.exe /reference
【讨论】:
好吧,我可能不应该回答这篇文章,因为我不确定我是否完全理解你的问题,但有时你可以解决命名空间冲突,就像我怀疑可能通过使用“全局”指令。
namespace Foo
{
class Bar
{
}
}
namespace Bar
{
class Foo
{
static void DoIt()
{
// Foo.Bar x1; // This wont compile.
global::Foo.Bar x2; // This will compile.
}
}
}
“global”指令指示编译器将“Foo”解析为命名空间而不是类,从而消除命名歧义。
我希望我在这里没有完全跑题,如果我跑题了,对不起。
【讨论】: