2010-07-08 89 views

回答

3

命名空間和程序集是完全獨立的概念。 有時候 - heck,經常會他們會匹配起來的,但是他們肯定不會。例如,您不傾向於使用mscorlib名稱空間:)同樣,大多數System.Linq類型都在System.Core.dll中。一個程序集可以包含多個名稱空間中的類型,並且多個程序集可以貢獻相同的名稱空間。

這是值得保持這兩個概念在你的頭腦中儘可能不同。幸運的是,很容易從MSDN中找到哪種類型的「生活」。

+0

這進一步澄清@mike的答案。謝謝! – jayblaze2 2010-07-10 20:41:22

4

.NET命名空間是交叉裝配。這允許庫設計人員適當地擴展特定的名稱空間,而不會污染具有非核心功能的核心庫。單個DLL的命名是不幸的,但並不打算按照您的想法反映名稱空間信息。

在您的示例中,System.Data.Entity是一個包含來自多個不同名稱空間的元素的DLL。正如你所發現的,其中之一就是System.Data.Objects。

+0

這是有道理的。謝謝! – jayblaze2 2010-07-10 20:40:37

0

命名空間System.Data.Objects在System.Data.Entity.dll中定義。

0

該程序集被稱爲System.Data.Entity這意味着DLL System.Data.Entity.dll

System.Data.Objects是該程序集中的命名空間。

單個程序集可能包含一個或多個可能全部使用不同名稱的名稱空間。

相關問題