2009-10-03 15 views

答えて

6

を試してみてください。あなたは、サードパーティを使用するか、またはアドオンツール、例えばする必要があります。

+0

しかし、なぜですか? C#コンパイラはCodeDOMを使用しませんか? – ulrichb

+4

いいえ、そうではありません。 CodeDomはマネージドアプリケーション開発者向けです。 csc.exeは.NET依存関係のないアンマネージコードです。 – bobbymcr

-2

CSharpCodeProviderがお探しのものである可能性があります。

+2

NO。私はCSharpCodeProviderが私が上で説明したことをすることができるとは思わない。 – ulrichb

0

は、コアの.NET Frameworkでこれを行うには、直接ことはできませんMono.Cecil

+1

しかし、ソースコードは扱いません。それとも? –

+0

正しいですが、ILだけを扱っています。 NRefactory(#DevelopプロジェクトのC#とVB.NETのパーサー)を使用することもできます。 –

0

あなたは、解析する機能が必要な場合C#ソースコード(または他のさまざまな言語)で任意の解析と変換を実行するには、The DMS Software Reengineering Toolkitをチェックしてください。

DMSは、解析されたコード(CodeDomではなく)の完全な抽象構文木を構築し、ASTのウォーク/チェック/変更のための完全な手続き型APIを提供します。ツリーを修正した後、元のスペーシングを維持しようとする忠実度モードまたは完全に制御できるプリテイプリント・スタイルを適用するプレット・プリント・モードのいずれかで、変更されたツリーに対応するソース・コードを再生成できます。コメントは再生されたソースに正しく保持されます。

さらに、DMSはソースレベルのパターンマッチングと変換を提供します(例えば、 "x = x + 1 ==> x ++"と書くことができます)。ツリーは変更されます)。

5

これは本当に古い質問ですが、受け入れられた回答はもう適用されなくなりました。 Microsoftの最近のRoslynプロジェクトは、静的解析の過程でコンパイラがコードベースについて得た知識をすべて公開し、これらの情報をすべてマネージドAPIを介して公開することを明示的に目的としています。 VBとC#の両方で利用できます。

あなたは、静的解析情報を消費したいので、あなたは、ドキュメントにsamples and walkthroughsページでMicrosoft.CodeAnalysis NuGetパッケージ(あなたがC#のために必要なものはMicrosoft.CodeAnalysis.CSharp名前空間の下にある)といくつかの時間が必要になります。

関連する問題