ASP.NETアプリケーションで実行されるAppDomainに現在ロードされているタイプをループするコードが少しあります。アセンブリを取得する方法は次のとおりです。
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
アプリケーションが最初に起動したときは問題はなく、私が期待するすべてのタイプが存在します。しかし、Web.configを更新するか、w3p.exeプロセスを強制終了すると(または何らかの理由でプロセスがリサイクルされると)、期待しているタイプの一部しか使用できません。デバッガーを使用してステップスルーすると、プライベート検索パス(アプリケーションのbinディレクトリ)からの特定のアセンブリがロードされていないことに気付きます。私は、すべてのアセンブリがアプリケーションの起動時にロードされ、すぐに必要かどうかに関係なく再起動することを前提としていました。ただし、再起動した場合、これらのアセンブリファイルが更新されていない限り、これは発生していないようです。
私が必要としているのは、後で使用するために起動時にタイプ情報を収集することです。ただし、再起動中は型が使用できないため、後で型情報を使用する必要があるときに大混乱を引き起こします。それを念頭に置いて、この欠陥をどのように解決または回避できますか?