我正在用插件开发一个应用程序。我有一个带有所有API接口的独立API程序集。
主应用程序从DLL动态加载插件:
object pi = Assembly.LoadFrom(plugin.AssemblyPath)
.CreateInstance(plugin.ClassName);
然后我将其转换为实际的插件类型:
IPlugin pluginInstance = (IPlugin)pi;
当所有程序集都没有签名时,所有这些都可以正常工作。一旦我签署了它们(主应用程序、API组件和插件组件),它就无法强制转换,抛出:
无法将类型为“.myplugin”的对象强制转换为类型“.iplugin”。
有什么建议吗?