我有使用AppDomain动态加载插件的代码。我有一个名为PluginFinder的私有内部类来完成这项工作。这一切都可以在生产环境中工作,但我现在正在尝试为它编写MS单元测试,并且我收到一个错误,说找不到程序集。
需要明确的是,主类创建 AppDomain 并在其中运行 PluginFinder 以加载使用正确的接口找到的类。加载类后,控件将返回到默认的 AppDomain。插件查找器仅在加载期间使用。
我使用下面的代码来创建环境:
// Create a domain to text for plugins
AppDomain domain = AppDomain.CreateDomain("PluginLoader");
// Set PluginFinder to run in the new domain (assemblyName, typeName)
(PluginFinder)domain.CreateInstanceAndUnwrap(
typeof(PluginFinder).Assembly.FullName, typeof(PluginFinder).FullName);
PluginFinder使用默认构造函数,并且是一个私有内部类。我得到的例外如下:
------ Exception ------
Error: Could not load file or assembly 'MyClass, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
There was an error creating the Plugin Loader.
Could not load file or assembly 'MyClass, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
喵喔喔
相关分类