VS 2010 で DGML ビューアーをいじり始めました (これは素晴らしいようです)。コードベースからダイアグラムを作成できることは知っています。
好きなものから有向グラフを作成するためのサポートはありますか、それとも純粋にコード分析ツールですか? 「ノードの追加」か何かに沿ったものが欲しいです。
VS 2010 で DGML ビューアーをいじり始めました (これは素晴らしいようです)。コードベースからダイアグラムを作成できることは知っています。
好きなものから有向グラフを作成するためのサポートはありますか、それとも純粋にコード分析ツールですか? 「ノードの追加」か何かに沿ったものが欲しいです。
グラフを手動で生成する必要があります。私の知る限り、このレベルの構造を変更するための視覚的なツールはありません。
空白を右クリックすると、[DGML の表示] を選択してソース XML ファイルを表示し、それを変更できます。構造がわかれば、適切な構造を持つ XML ファイルを作成するだけで、コードからグラフを自動的に生成することもできます。定義する必要があるのは Links セクションだけです。グラフに見栄えの良い名前を付けたい場合は、ノード セクションを定義することもできます。
ここでは、それを実行する方法の例を示します。より効率的な方法がある可能性が最も高いですが、これは理解しやすいです。
XmlWriter xmlWriter = XmlWriter.Create(outputFile, new XmlWriterSettings() { Encoding = Encoding.UTF8 });
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("DirectedGraph", "http://schemas.microsoft.com/vs/2009/dgml");
xmlWriter.WriteStartElement("Nodes");
// dump nodes
foreach (Name n in Names)
{
xmlWriter.WriteStartElement("Node");
xmlWriter.WriteAttributeString("Id", n.Id); // id is an unique identifier of the node
xmlWriter.WriteAttributeString("Label", n.Label); // label is the text on the node you see in the graph
xmlWriter.WriteEndElement();
}
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("Links");
// dump links
foreach (Link l in Links)
{
xmlWriter.WriteStartElement("Link");
xmlWriter.WriteAttributeString("Source", l.Source); // ID! of the source node
xmlWriter.WriteAttributeString("Target", l.Target); // ID of the target node
xmlWriter.WriteEndElement();
}
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Close();
これはあなたがする必要があるすべてです..グループ化や色付けが必要ない場合..もう少しコードを追加します...
DGML の基本的な編集タスクについては、「グラフ ドキュメントを編集およびカスタマイズする方法」を参照してください。