2009-03-27 16 views
1

.NETアセンブリから、ソースファイル内のクラス/構造体/インターフェイス定義の場所(filename、begin_line、begin_column、end_line、end_column)を取得する必要があります。.NETアセンブリにソースコードの位置情報(ファイル/行/列)を含めるにはどうすればいいですか?

私の頭に浮かんだ最初の解決策は、いくつかのpdb quering apiを使用していましたが、この方法でしかこのような情報を得ることができないようです。または、私は間違っているかもしれません...

私はVS 2008のアドインをビルドしようとしていますが、VSオートメーションモデルを使ってすべてのソリューションプロジェクトをコンパイルし、アセンブリを取得し、Reflectionsを使ってビジュアルモデリングを行います表現。私が必要とするのは、ソースコードとモデル要素の間の接続です。実際、私は場所の情報を覚えておくために何らかの方法でソースを分析/変更することさえできました。

すべてのアイデアをいただければ幸いです。

答えて

0

私は、既存のクラス図があなたを助けないと思っています。また、C#をリバースエンジニアリングする方法をすでに知っているツールを使用することはできません。 Sparx Enterprise Architectは、リバースエンジニアリングだけでなく、結果として得られるモデルのユーザー定義の変換も実行できるので、心に留めておきます。あなたは、モデルの面でも、人工物の面でも、あなたが望むものを生み出すことができるはずです。

また、クラスが部分的である可能性も考えます。同じクラスがいくつかの部分に存在する可能性があります。

+0

Yeap。 Sparx EAは素晴らしいですが、自分のケースツールが必要です。この点から私が提供できないのは、私のモデル要素とソースコードとの関係です。 私はクラスが部分的かもしれないし、メソッドや他の難しいものも理解していますが、何とかしなければなりません。 返信いただいたThanx。 –

+0

私はあなたがあなたのツールを作成することを提案していました... –

0

ソースコードを何らかの形で解析する必要があると思われる状況がほとんどあります。おそらく、DevExpressからDXCoreをチェックする価値があるかもしれませんが、Visual Studio内のGraphicsとサポートされているすべての言語用のコードDOMを提供するパーサーの両方の基礎を提供することができます。独自のアドインを構築する場合は無料です。

http://www.devexpress.com/Downloads/Visual_Studio_Add-in/DXCore/

それはあなたが探している解決策ではないかもしれませんが、それはあなたがそれを提供するもの活用できるかどうかは、少なくとも一見の価値があります。この基盤に基づいてかなり強力なプラグインがたくさんあります。例:http://jayflowers.com/WordPress/?p=137,

+0

Thanx。私はそれを見てみましょう。 –

関連する問題