我有一个 API 项目和一个包含接口(interface)的类库项目。所以我有一个实现接口(interface)的第三个项目和一个实现与项目3相同接口(interface)的项目。因此,项目3和4知道项目2。
我的问题是我想通过我的类库项目(第二个)调用实现,但该项目不知道实现项目。
如何通过我的第二个项目调用实现项目?
我的想法是,我有很多实现项目,所以我只想创建另一个新项目并实现接口(interface),而不必在项目 2 中对代码进行太多更改。
我在所有项目中都使用 .NET Core 2.0
最佳答案
这是一个经典的“插件”系统。
定义项目 2(“托管”项目)中的接口(interface)
3和4引用2以获取接口(interface)定义(通常也是获取托管项目提供的服务)
现在您需要让主机 (2) 动态加载插件。
您可以“手动”完成此操作。 = 枚举特定目录下的DLL并找到实现接口(interface)的DLL。
或者你可以使用各种框架来完成它。 MEF 是众所周知的一个。在这里查看更多信息Implementing Plugin Architecture - Dynamic DLL loading
关于c# - 在不同的项目中实现相同的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52011004/