はまたここに掲載、ない本当の学問的な答えを: why namespace types should not depend on nested namespaces types?型は、その型を含む名前空間の型に依存しないのはなぜですか?
私はそれを正しく理解していれば、ポイントはProduct
がための基盤であるため、タイプProduct.Business.Modules.Module
は、他の方法で回避をProduct.Business.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の記事からでした。これは、実際にクラスライブラリのアーキテクチャとレイアウトを大きく変えることができます。