是的,将接口推送到共享库是首选解决方案.然后,您只需要将此库分发给插件开发人员,这可以被视为轻量级,但插件将耦合到接口的精确版本.
另一种解决方案是基于约定的解决方案,其中插件编写器具有"符合"接口的类型,例如,在类上具有适当的方法,它们可以通过配置文件指向.然后,您可以使用反射,IL生成等将其连接到具体的内部接口\ proxy.这样做的好处是,插件不会硬连接到特定的接口版本,因此版本控制具有更大的灵活性.
您还可以通过维护所有版本的接口来考虑版本控制,例如IPlugin_1,IPlugin_2等.然后由插件编写者来实现任何版本,并且您可以处理每个版本.