我用 C# 制作了一个简单的游戏引擎(在 VB 2008 中,主要是为了我自己)。有一个主要的应用程序来处理图形和其他东西,来自实际游戏的大部分数据都将保存在一个 dll 中,该 dll 由我提供给游戏设计师的工具生成。
我听说过很多关于 C# 非常适合编写脚本的消息(而且看起来它比任何其他方式都更适合我的需求),但我真的找不到确切的答案。我遇到了这个问题:
我显然不想提供主 exe 的源代码,但它将包含脚本所需的所有主要方法(因为它们作用于主 exe)。
如果没有定义将在父 exe 中调用的方法,如何生成 dll?主 exe 将 dll 作为使用它的依赖项。这意味着 dll 不能依赖会导致循环的 exe。
我可以创建另一个 exe 和库都将使用的 dll,但是其中的方法将无法直接作用于使用它的主 exe。
我想出的唯一合乎逻辑的解决方案是:
- 一个包含我需要的类的骨架的 dll。
- 包含游戏数据的 dll。这将有一个从 dll A 继承的类。
- Exe 依赖于 A 和 B。它将覆盖 B 中的 A 方法以使其表现出应有的方式。
不过,这似乎不太优雅。
在我累得无法进一步阅读之前,我在研究中看到了很多单词(MAF、MEF、Roslyn 等)。我一个人就花了几个小时。
在你看来,我应该怎么做呢?有什么我忽略的吗?