1

Visual Studioアドインから現在開いているプロジェクトのタイプ(クラス)にアクセスするにはどうすればよいですか(アドイン内でそれらのクラスのインスタンスを作成できます)?これは反省を通して可能ですか?または、プロジェクトのアセンブリを参照として動的に含めることができますか?

最後に、プロジェクトからアクセスできるすべてのタイプのリストを作成します。これには、プロジェクト自体で宣言されている参照アセンブリとタイプが考慮されています。Typeインスタンスを実際に見つける方法がない場合は、型名のリストで問題が発生する可能性があります。このように、プロジェクトがまだビルドされておらず、その中の型がまだ実装されていない場合でも、問題は発生しません。

私はVisualStudio2008を使用しており、好みの言語はC#です。

編集:各ファイルを解析してクラス宣言を探すことができると思いますが、参照されるアセンブリの型も検討したいと思います。「using」ステートメントを検索することで参照を探すことができますが、動的にインポートされたdllタイプは未解決の問題になります。したがって、考慮すべき別々の状況の分岐を考えると、もっと簡単な方法はないのだろうかと思います。

4

2 に答える 2

1

もちろん、出力ディレクトリからアセンブリを取得してロードするだけです。現在、EnvDTEプロジェクトに取り組んでいないため、サンプルをポップインしてノックアウトすることはできませんが、これにより、クラスを列挙/インスタンス化できます。

しかし....nobugzは何かがにおいがすることをほのめかしています..あなたは何をしようとしていますか?それを行うための「より良い」方法があるかもしれません。

于 2010-02-13T22:54:35.550 に答える
0

Visual Studioコードモデルは、自動化クライアントにプロジェクト内のコード定義を検出し、それらのコード要素を変更する機能を提供します。

詳細については、以下を参照してください。

http://msdn.microsoft.com/en-us/library/ms228763(VS.80).aspx

于 2010-04-29T08:24:26.810 に答える