代码之家  ›  专栏  ›  技术社区  ›  Muxa

在签名程序集中类型转换插件实例时出错

  •  0
  • Muxa  · 技术社区  · 15 年前

    我正在用插件开发一个应用程序。我有一个带有所有API接口的独立API程序集。

    主应用程序从DLL动态加载插件:

    object pi = Assembly.LoadFrom(plugin.AssemblyPath)
                  .CreateInstance(plugin.ClassName);
    

    然后我将其转换为实际的插件类型:

    IPlugin pluginInstance = (IPlugin)pi;
    

    当所有程序集都没有签名时,所有这些都可以正常工作。一旦我签署了它们(主应用程序、API组件和插件组件),它就无法强制转换,抛出:

    无法将类型为“.myplugin”的对象强制转换为类型“.iplugin”。

    有什么建议吗?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Muxa    15 年前

    知道了!问题是我在api.dll上有两个副本——一个在应用程序文件夹中,另一个在插件子文件夹中。当我删除plugins\api.dll后,它开始正常工作。

    (不过,它在无符号模式下运行良好,有两个副本)