【发布时间】:2019-07-19 09:54:12
【问题描述】:
好的。所以我想建立一个程序,作为“插件”模块的核心。 另一个开发人员可以创建一个 plugin1.dll 并将其添加到“模块”文件夹中以增强我的核心应用程序的功能。
假设我的核心具有以下功能:
- 日志记录
- 用户认证
- 用户界面
例如,我们有上面提到的核心应用程序,有人想添加一个插件,让用户查看当前时间并将其记录到标准日志中。
所以他会创建一个具有以下功能的类库:
- 获取当前时间(.dll 中包含的功能)
- 显示当前时间(.dll 中包含的功能)
- 记录当前时间(核心包含的功能)
现在我的问题是,我可以使用反射从我的核心应用程序中轻松调用插件的功能,但反过来我该怎么做呢?
我的 plugin1.dll 如何访问和调用核心程序的完全设置的日志记录功能?
我希望你能得到我的问题。我希望我的 plugin1.dll 能够调用我的核心类的示例日志记录方法。
谢谢!
【问题讨论】:
-
提供一个带有接口的共享程序集,现在双方都可以使用这些抽象。
-
@thehennyy 这也是我的第一个想法。将模块和核心应用程序共享、使用的所有功能移至由它们全部实现的程序集。我不太确定它会如何工作。能给我举个简单的例子吗?
标签: c# plugins reflection