2011-03-17 104 views
0

類我有一個庫中的一類,沒有根命名空間,firstone.dll:通過擴展命名空間

namespace first 
    public partial class one 
     public sub fun() 

     end sub 
    end class 
end namespace 

我的第二個庫,沒有根命名空間,firstonetwo.dll,引用firstone.dll:

namespace first.one 
    public partial class two 
     public sub testfun() 
      first.one.fun() 'not recognized' 
     end sub 
    end class 
end namespace 

namespace first 
    public partial class one 
     public partial class two 
      public sub testfun() 
       first.one.fun() 'also not recognized' 
      end sub 
     end class 
    end class 
end namespace 

有沒有一種方法來擴展在一個單獨的DLL中的類,並且仍然可以訪問origi最後一堂課?我不想繼承這個類,只是擴展它。

回答

0

的問題是,你有一個命名空間,並具有相同名稱的類,並且引起了很多混亂。第一個示例是first名稱空間中名爲one的類,而第二個示例是first.one名稱空間中名爲two的類。僅僅因爲它們可以寫得一樣,兩者之間就有很大的區別。

Do not name a class the same as its namespace, Part One

編輯

你的樹看起來是這樣的:

  • 第一(NS)
    • 一個(類)
    • 樂趣(方法)
    • 一個(NS)
    • 兩(類)

VB是否有問題遍歷樹,並確定看哪個one

0

這是未經測試

namespace first 
    public partial class one 
     public overridable sub fun() 

     end sub 
    end class 
end namespace 

單獨的類文件

Imports first 
namespace one 
    public partial class fun 
     public overrides sub fun() 

     end sub 
    end class 
end namespace 
相關問題