2017-01-18 3 views
3

プロジェクト/アセンブリ内のすべてのクラスを反復処理し、他の依存クラスを見つけるためのプログラム的な方法やツールはありますか? Resharperにも同様の機能がありますが、解析しやすい形式で結果をエクスポートする方法を見つけることができませんでした。.netプロジェクト/ソリューションのクラス間に依存関係グラフを作成する

私の最終目標は、(クラスあたり)クラス間の依存関係グラフを作成することです、プロジェクト/名前空間によって凝集していないの/ etc

私の最終目標は、その他、各種その<Class Name>: <Dependency1>, <Dependency N>

- Class1: Class2, Class6, Class9 
- Class2: Class1, Class4 
- Class3: 
- Class4: Class2, Class5 

のようなリストを取得することです

更新: 私はVisual Studio 2015 Premiumを使用しています。

+1

のために働きますか?より高価なバージョンにはこれらのツールがあります。 – arbitrarystringofletters

+1

これは、上位層のVisual Studio SKU(Enterprise/Ultimateおよび多分Premium)でサポートされています。https://msdn.microsoft.com/en-us/library/dd465141.aspx –

+0

ありがとうございました。私はVSバージョンとエディション。 – vmg

答えて

2

VS2015(すべてのSKU、プレミアムが含まれています)とVS 2017、2013、2012、2010のすべてのSKU( SKU)を除くすべてのSKUを統合するツールNDependを試すこともできます。

NDependを使用すると、Visual Studio C# linq queries that are compiled/executed liveで編集できます。たとえば、以下のコードのクエリは、すべてのクラスの依存関係を示しています

from t in Application.Types 
select new { t, t.TypesUsed, t.TypesUsingMe } 

NDepend Code Query for Dependency

コードクエリの結果がグラフにエクスポートすることができ、この方法は、依存関係グラフの多くの種類を生成することができる:Call GraphClass Inheritance GraphCoupling Graphを... 。

NDepend Generating Graoh fromCode Query

私は、エクスポートする方法を見つけることができませんでしたいくつかの結果は の解析が容易な形式です。 Visual Studioで問い合わせるコードを生きることに加え

、NDependのコードクエリを使用すると、C#のプログラムを作成するために活用することができますし、任意のフォーマットで任意のデータをエクスポートするAPIを通じて利用可能です。

通常、グラフは数百ノードの複雑な構造を表示できないため、NDependもDependency Structure Matrixを提案しています。ここで

NDepend Dependency Structure Matrix

私は複雑なグラフによって何を意味するかです。

Complex Graph

免責事項:私は、Visual Studioのバージョンを使用しているNDependの

+1

ありがとうパトリック!私はNDependで(C#Apiを使ってアプリケーションを書くことによって)私が望むものを手に入れることができました。 NDependは素晴らしいです、私はそれが提供する機能に吹き飛ばされました! – vmg

+0

私たちはNDependがあなたが望むものを達成するのを助けてくれるとうれしいです:) –

1

あなたが探している機能はコードマップです。彼らはVS 2015プレミアムで利用可能かどうかはまだ分かりませんが、最初のリリースではありませんでした。この記事のコメントはあなたを助けるかもしれません:New ways to quickly create a Code Map

+0

ありがとうございます。デフォルトでは、プロジェクト/名前空間によって集約された依存関係を示します。クラスレベルの依存関係を表示する方法はありますか? – vmg

関連する問題