2017-06-23 10 views
2

を働いていないクラスを見つけます。それ以外の場合は失敗します。
インスタンスを最初に作成することなくクラスを取得するにはどうすればよいですか?は、私はこの方法でインタフェースを実装するすべてのクラスを取得しようと

追加情報:

DllSetup:
Core.dllは、上記の方法
Impl.dllリファレンスのコアを持つクラスを保持し、
テストを見つけるために、クラスを保持しています。 DLLの両方を参照してメソッドを呼び出します

Impl.dllでダミークラスのインスタンスを作成するときにアセンブリがどのように読み込まれるかについては、他のクラスも見つけることができます。

+1

['AppDomain.Load()'](https://msdn.microsoft.com/en-us/library/36az8x58(v = vs.110).aspx)を使用してアセンブリを強制的にapp domain – Amy

+0

クラスのインスタンスとは関係ありませんが、ライブラリ(.dll)がまだアプリケーションドメインにロードされている場合は何もありません。 – Igor

+1

https://stackoverflow.com/a/11994178/34092は役に立ちますか? – mjwills

答えて

3

AppDomain.CurrentDomain.GetAssemblies()は、既にAppDomainにロードされているアセンブリのみを含みます。アセンブリの種類が使用されると、アセンブリがロードされます。 Assembly.LoadFrom(..)を使用して、すべてのアセンブリを自分でロードする必要があります。

関連する問題