我创建了一个支持重新加载插件并且不使用多个 AppDomain 的插件架构。我只是简单地创建一个新程序集,当 dll 更改时,使用该Assembly.Load(Byte[])
方法创建插件实例,然后通过myAssembly.CreateInstance(type.FullName)
. 这一切都很好。现在我想支持插件可以引用程序集,并且可以动态更改这些引用。我已经实现Appdomain.AssemblyResolve
了事件,它当然可以加载插件的引用一次,但不会在引用的 dll 更改时重新加载它们。
有什么方法可以从程序集创建一个实例并告诉它哪些其他程序集用作参考?
小提示:我知道应用程序域但不能使用它们,因为我不想序列化我在内存中的数据(许多 GB)。