c# - 实现接口(如果存在)
问题描述
我试图弄清楚 C# 中是否有可能。我正在为 Kerbal Space Program 编写一个 mod/plugin,插件是编写并编译成 DLL 的 C# 代码。DLL 放置在 KSP 目录中的文件夹中,KSP 在初始化期间加载它们。
我希望我的插件中的一个类能够在另一个插件中实现一个接口而没有硬依赖。我的插件可以在没有另一个的情况下包含,另一个可以在没有我的情况下包含,但如果两者都存在,则通过接口公开附加功能。
实际上,插件 A 公开了一组功能,对于这个问题,重要的是公开了一个接口,它依赖于识别具有特定功能的类。
插件 B 公开了一组不同的功能,但与该接口兼容并希望实现它。
您如何编写这些插件,以使两者都不是对另一个的硬依赖,但插件 B 仍然在其类中使用来自 A 的接口?我的基本直觉是,接口实际上需要放置在单独的 DLL 中,并且插件 A 和 B 都依赖于仍然不理想的 DLL。我也不确定如果包含包含该接口的上述 DLL,它们将如何交互,因此尝试加载它两次。
重要的最后说明:KSP 是用 Unity 编写的,并且仍然依赖于 .net 3.5,因此我无法使用 4+ 中的附加功能。
解决方案
推荐阅读
- angular - Heroku github 部署失败的角度应用程序
- reactjs - 组件在 React.js 中重定向到其组件本身
- python - 如何删除所有以某个值开头的值?
- android - Inno Setup SignTool Error 2 系统找不到指定的文件
- reactjs - 在 React 状态下更新嵌套对象
- c - 即使在 GCC 优化被关闭的情况下,是否有必要使用“volatile”限定符?
- java - Logback 记录到数据库没有异常但不起作用
- machine-learning - 深度学习背景下的交叉验证 | 物体检测
- javascript - 在 ReactJS 应用程序中使用库的问题
- vb.net - 重命名零件/装配的内部装配