首页 > 解决方案 > 实现接口(如果存在)

问题描述

我试图弄清楚 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+ 中的附加功能。

标签: c#unity3ddllinterface

解决方案


推荐阅读