我有一个带有命名空间的Web服务,如下所示:
namespace MyNS
{
class MyObject
{
//Implementation here
}
}
我发布了网络服务,并尝试从下一个C#网站上使用该网络服务。
我将服务名称分配给“MyWS”。
当我尝试编写代码时
我必须写,
MyWS.MyObject obj = new MyWS.MyObject();
但我想写
MyWS.MyNS.MyObject obj = new MyWS.MyNS.MyObject();
问题在于其他命名空间下的MyObject类。所以,我想通过NameSpaces识别我的类。
在编码中如何使用命名空间?
答案 0 :(得分:1)
我不相信原始命名空间是作为WSDL的一部分公开的,这是生成过程用来创建客户端点的原因。
这意味着无法控制您的Web服务使用的命名空间。
但是,您可以控制客户端端点使用的命名空间。添加服务引用时,第一页的底部(标题为“添加服务引用”,并包含“发现”控件)是一个标题为“命名空间”的文本框。如果您在添加服务时将该字段更改为MyWS.MyNS
,则应允许您按原样引用该字段。
答案 1 :(得分:0)
问题在于其他命名空间下的MyObject类。所以,我想通过NameSpaces识别我的类。
如果尝试使用冲突的对象名,编译器会给出一个模糊的引用错误。在这种情况下,你必须对它们进行限定。
因此,如果您想给它一个别名,只需输入您想要的名称。
namespace This.Is.My.Favorite.Namespace
{
public class MyObject()
{
//stuff
}
}
答案 2 :(得分:-1)
namespace MyNS.MyWS
{
class MyObject
{
//Implementation here
}
}