2012-02-22 67 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