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

时间:2012-02-22 16:57:43

标签: c# asp.net web-services

我有一个带有命名空间的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识别我的类。

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

3 个答案:

答案 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
    }
}