Web服务;C#中的命名空间

本文关键字:命名空间 服务 Web | 更新日期: 2023-09-27 18:25:38

我有一个名称空间如下的web服务:

namespace MyNS
{
    class MyObject
    {
        //Implementation here
    }
}

我发布了Web服务,并尝试从下一个C#网站使用该Web服务。

我将服务名称分配给了"MyWS"。

当我试图写代码

我必须写,

MyWS.MyObject obj = new MyWS.MyObject();

但我想写

MyWS.MyNS.MyObject obj = new MyWS.MyNS.MyObject();

问题是其他命名空间下的MyObject类可能存在此问题。所以,我想通过NameSpaces来识别我的类。

如何在编码中使用命名空间?

Web服务;C#中的命名空间

我不认为原始名称空间是作为WSDL的一部分公开的,而WSDL是生成过程用来创建客户端端点的。

这意味着没有办法控制您的web服务用作什么命名空间。

但是,您可以控制客户端端点使用的命名空间。添加服务引用时,第一页(标题为"添加服务引用",包含发现控件)的底部是一个标题为"命名空间"的文本框。如果在添加服务时将该字段更改为MyWS.MyNS,则应允许您引用该字段。

问题是其他命名空间下的MyObject类可能存在此问题。所以,我想通过NameSpaces来识别我的类。

如果您尝试使用冲突的对象名称,编译器将给您一个不明确的引用错误。在这种情况下,你必须使他们合格。

所以,如果你想给它一个特定的别名,只需键入你想要的名字

namespace This.Is.My.Favorite.Namespace
{
    public class MyObject()
    {
      //stuff
    }
}
namespace MyNS.MyWS
{
    class MyObject
    {
        //Implementation here
    }
}