2011-07-29 4 views
4

クラスのソースコードをオブジェクトとして表現する方法はありますか?私はメソッド、それらのボディなどをナビゲートしたいと思います。どのようにstylecop、ReSharperのようなツールをVisual Studio 2010で実行しますか?ソースコードファイルを入力してオブジェクトの表現を生成する外部ライブラリはありますか?どちらを読んだり、修正したり、分析したりできますか?C#のオブジェクトとしてのソースコード

答えて

2

既にコンパイルされたアセンブリと同じです。 Reflectionはオブジェクト構造に関するほとんどの情報を提供します。しかし、実際のコードを取得するには、ILに下がる必要があります。

Visual Studioで開いているコードでは、VSはこれらのプラグインの多くが使用するCOMインターフェイスを公開します。 EnvDTEは、このインタフェースの周りに管理されたラッパーです。しかし、ドキュメントはほとんどありません。

+0

私は、既存のコードに干渉し、私のタグまたはそのような何かから何かを生産するアドインを書きたいのですが...例:これは、コードに次のようになります。 // BUG(「マイク」は、「これはマイクが解決すべきバグである」) 私は、このタグと火の手順MATCを見つけ、ファイルを分析したいですこのタグに時間 - TFS上のバグを作成して、マイクに割り当てと説明(第二引数)を追加 EnvDTEが役立つことができますか?または、私はそれを行う他のライブラリを見つける必要がありますか? – Simon

2

NRefactoryがあなたのためにこれを行います。

http://wiki.sharpdevelop.net/NRefactory.ashx

編集を:これは、あなたが望むものである "パーサ" です。これは、C#コードを抽象構文木に変換します。抽象構文木は、コードで修正してC#に戻すことができます。

0

あなただけのメソッド、クラス、プロパティ名を一覧表示したい場合には、反射が良いシンプルなソリューションです - 例えばhttp://www.java2s.com/Tutorial/CSharp/0400__Reflection/ListMethods.htm

メソッドボディを含む詳細な解析が必要な場合は、1つ以上のReflector置換のソースコードから開始することをお勧めします。

+0

仮定: - 私は、ソースコードへのアクセスを持っていないだけで.dllが - 私は、たとえば、ファイルや火災イベントを分析したいと思います:外部ツールを実行するか、またはいくつかのテキストを生成し、そのようなコメントか何かのようにそれを置きます定義されたタグに依存します。 私は何かを逆コンパイルしたくありません:) – Simon

+0

清算をありがとう - 申し訳ありませんが私は誤解しました!その場合、NRefactoryがあなたのためのものであるように聞こえます。商業的にはactiproの編集者も多くの解析機能を提供しています。 – Stuart

関連する問題