2012-02-22 82 views
0

我有一个命名空间为以下Web服务:Web服务和命名空间在C#

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

我出版的web服务,并尝试使用来自下一个C#网站,web服务。

我将服务名称分配给“MyWS”。

当我尝试写的代码

我必须写,

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

但我想写

​​

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

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

+2

仅供参考,该语言被命名为“C#”,而不是“C#.Net”。 – 2012-02-22 16:59:06

回答

1

我不相信原来的命名空间暴露的WSDL,这是生成过程中使用创建客户端终点的一部分。

这意味着你无法控制你的Web服务被用作什么名称空间。

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

0

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

如果您尝试使用冲突的对象名称,编译器将给您一个模棱两可的引用错误。在这种情况下,你将不得不限定他们。

所以,如果你想给它一个别名,只要输入你想要的名称。

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

问题是该服务被命名为MyWS,并且该名称空间将自动分配给从该服务导入的类。 – 2012-02-22 17:15:02