4

コードをアセンブリに配置して、適切な名前空間の依存関係を適用できます。

Company.Product.Domain assembly
Company.Product.DataAccessLayer assembly
  -References Company.Product.Domain
Company.Product.Application assembly
  -References Company.Product.Domain
  -References Company.Product.DataAccessLayer

循環アセンブリ参照は不可能であるため、たとえばドメイン内から DAL を参照していないことは確かです。

ただし、複数のドメインがある場合、これにより多数のアセンブリが発生します。単純に名前空間を使用して、次のようにプロジェクトを整理したいと思います。

Company.Product assembly
  -Company.Product.Domain namespace
  -Company.Product.DataAccessLayer namespace
  -Company.Product.Application namespace

望ましくない名前空間の依存関係を防止または警告できる方法はありますか。

誰かが知っている「コードインスペクション->カスタムパターン」ソリューションがあれば、私はリシャーパーを持っています。

4

1 に答える 1

3

私自身も同じ問題を抱えており、自分で作成した適切なツールが見つかりません。使用 (推測): Roslyn.

これはオープン ソースで、ここにあります: http://nsdepcop.codeplex.com

それはこのように動作します:

  • 許可された名前空間の依存関係を XML ファイル (プロジェクトごとに 1 つのファイル) で定義する必要があります。
  • このツールは MSBuild プロセスに統合されているため、ビルドするたびに実行され、依存関係の規則に違反するソース コード セグメントごとに警告/エラーが発生します。
  • Roslyn エンド ユーザー プレビュー (VS2013 用) をインストールすると、Visual Studio にも統合され、コードを入力するとフィードバックが返されます (問題を取得するためにビルドする必要はありません)。
于 2014-09-13T16:35:22.763 に答える