反射

2016-12-15 16 views
0


でコンソールアプリケーションからWebアプリケーションのアセンブリ情報を取得するために、どのように私は、コントローラ/アクションメソッド名コンソールアプリケーションからのMVC Webアプリケーション

のリストを取得する必要があります。

私はこれを行うためにリフレクションを使用します。
Webアプリケーションの.dllをコンソールアプリケーションに参照しました。
しかし、コンソールアプリケーションソースからWebアプリケーションのアセンブリ情報を取得できません。
反射

var check = AppDomain.CurrentDomain.GetAssemblies(); 
var assembly = AppDomain.CurrentDomain.GetAssemblies() 
.First(x =>x.ManifestModule.Name == "RedStar.WebApp.dll"); 

シーケンスが一致する要素「

答えて

0

アセンブリそれらが使用されるまでロードされません含まれていない」このexceptipn「のSystem.InvalidOperationException」をスローします - ので、あなたのプロジェクトにアセンブリを参照しているにもかかわらず、AppDomain.CurrentDomain.GetAssemblies() doesnのをそれを含める(まだ)。

明示的にアセンブリをロードするには、Assembly webapp =Assembly.Load("RedStar.WebApp")を使用する必要があります。あなたが特定のファイルをロードしたい場合は、Assembly.LoadFromを使用することができますが、これはいくつかのunwanted side effectsを有することができる - ロード・アセンブリのこの方法は、アセンブリ名ではなく、ファイル名を使用すること

注意。

+0

私はちょうど試してみました。ありがとうございました – mrkiyak