也張貼在這裏,但沒有真正的學術答案: why namespace types should not depend on nested namespaces types?爲什麼類型不依賴於其包含的名稱空間中的類型?
如果我理解正確的話,問題是,一種類型Product.Business.Modules.Module
可以圍繞取決於Product.Business.Product
,但沒有其他辦法,因爲Product
是基礎Module
。然而,看我的項目結構,我違反了這個指導原則:
namespace Product.Business
{
using Modules;
class Product
{
public IEnumerable<Module> Modules { get; }
// Module is abstract, with many different kinds defined in Modules.
}
}
但是,我想延長這個問題。
- 在哪裏可以找到支持信息支持這一方針?
- 爲什麼這是不好的做法?
- 是否有效的類型依賴於來自其他名稱空間的類型與相同的包含名稱空間? (如
Product.Business.Security
取決於Product.Business.Modules
類型?
在某種意義上違反本準則創造了某種循環命名空間的依賴,但我想了解更多本指南的爲什麼的,而不僅僅是一條毯子聲明。唯一的其他信息,我能找到的就是從鏈接的MSDN文章,這可以改變一個類庫顯著的結構和佈局。