2009-04-07 12 views
2

.NETでクラス図(.cd)をプログラムで生成することは可能ですか(C#)?もしそうなら、どのように?デザイナを使用しない.NETクラス図

PD:明らかに、IDEを使用してこれを生成する方法の指示は求めていません。私はクラスをClassDiagramアイテムにドラッグアンドドロップできることを知っています。

答えて

3

メモ帳を使用して.cdファイルを開いたばかりですが、それはplain XML ...プログラムで生成するのは難しくありません。

0

クラス図を表示する.csファイルを選択し、[クラス図の表示]を選択すると、.cdファイルが生成されて表示されます。

+0

これはコードからのものではありません。 –

+0

ええ、それは...コードは入力ですので、コードから... ;-P – Shog9

+0

私はあなたが今何を意味していると思いますが、その答えは分かりません。 –

0

はい、Visual Studioを開き、.csファイルまたはプロジェクトを右クリックし、[クラス図の表示]を選択します。 .cdが自動的に作成されます。

0

私は半分の答えをお詫びしますが、実際にはこれがかなり時間がかかるかどうかを確認することができます。

XMLフォーマットを見ると、それはかなりわかりません。特にHashエントリは削除すると、IDEによってエントリが削除されます(私はそれほど試しました)。

実際に自動化するには、VSオートメーションAPI EnvDTEを使用する必要があります。 APIは非常に秘密で、一般化されています。私は特定のクラスや、クラス図を扱っているものがドキュメントを見て見つけられませんでした。

数時間を費やすことが重要な場合は、自動化APIを使用して検査できるように手動で作成することから始めます。 EnvDTE COMオブジェクト(CoCreatedまたはVSマクロで提供される)を使用して、DTE.Solution.Openを使用してソリューションを開きます。次に、DTE.Solution.Projectsを使用してクラス図でプロジェクトを検索し、Project.ProjectItemsでクラス図ファイルを探します。

ここからは、ProjectItemのKindプロパティが何か特別なことを示しているかどうかを確認してから、ProjectItemのObjectプロパティを反映させて何か特別なものがあるかどうかを確認します。

一度だけ生成する必要がある場合は、DTE.Commandsプロパティを参照して、使用可能なコマンドのリストを取得してください。メニューを右クリックして呼び出されるコマンドは、どこかにあるはずです。次に、DTE.Windows.Items(Constants.vsWindowKindSolutionExplorer).ObjectをUIHeirarchyとして使用して、ソリューションエクスプローラウィンドウを取得し、UIHeirarchyおよびUIHeirarchyItemを使用してファイルを選択し、コマンドを呼び出すことができます。

申し訳ありませんが、私は完全な例を提供することはできませんが、私はツリーウォークコードを手軽に使うことができないので、数時間かかるでしょう。

関連する問題