AssemblyName.CodeBase を設定すると、アセンブリが LoadFrom コンテキストに読み込まれますか?
私は一種のプラグインシステムに取り組んでいます。Type.GetType などを使用できるようにする必要があります。コードのどの場所でも、Type がプラグイン dll からのものかどうかを知る必要はありません。
私のプラグインは、私のアプリケーション (windows/web) の bin ディレクトリの下のフォルダー Plugins にあり、各プラグインは独自のフォルダーにあります。
プローブ パスをプラグイン (または bin;bin\Plugins for web) に設定しますが、プラグインはサブ フォルダーにあるため違いはありません。
そして、このようにプラグインをロードします
pluginInfo.EntryAssemblyName = new AssemblyName(myAssemblyName);
pluginInfo.EntryAssemblyName.CodeBase = assemblyPath;
pluginInfo.EntryAssembly = Assembly.Load(pluginInfo.EntryAssemblyName);
注: PluginInfo は、プラグインの状態を保持する単なるクラスです。
アセンブリ名 Assembly.Load の CodeBase プロパティを設定したため、プローブ パスになくてもアセンブリを見つけることができます。これは、アセンブリが既定のコンテキストまたはコンテキストからロードされることを意味しますか?
エントリ アセンブリの後で AssemblyResolve イベントが再度発生するのは正常ですか?