我有一个API项目和一个包含接口的类库项目。因此,我有第三个实现接口的项目和一个实现与项目3相同的接口的项目。因此,项目3和4了解项目2。
我的问题是我想通过我的类库项目(第二个)来调用实现,但是该项目不知道实现项目。
如何通过第二个项目调用实施项目?
我的想法是我有很多实现项目,所以我只想创建另一个新项目并实现接口,而不必在项目2中进行太多更改。
我在所有项目中都使用.NET Core 2.0
答案 0 :(得分:1)
这是经典的“插件”系统。
在项目2(“托管”项目)中定义界面
3和4参考2是为了获得接口定义(也通常是获得托管项目提供的服务)
现在,您需要使主机(2)动态加载插件。
您可以“手动”执行此操作。 =枚举DLL是一个特定目录,然后找到实现接口的DLL。
或者您可以使用各种框架工具来执行此操作。 MEF是众所周知的。在这里查看更多信息Implementing Plugin Architecture - Dynamic DLL loading
答案 1 :(得分:0)
在不知道要完成的工作的情况下很难确切知道应该做什么,但是...
创建一个项目,将其命名为2.a,其中仅包含接口。假设Project 2使用3和4中的实现,则对2.a,3和4进行引用。