在模块之间转换 Enum

发布于 2024-10-12 20:04:16 字数 237 浏览 2 评论 0原文

我在一个模块(A)中有一个枚举定义,例如 SUCCESS = 0、INVALID_REQ = 1 等。然后我有另一个 dll(模块 B),它有自己的一组状态枚举。一旦我们在 A 中添加了新的枚举值,我们就必须手动将其添加到 B 中,因为 A 位于 .NET 中,而 B 是 C 代码。此外,A 中的枚举只是 B 中状态枚举的一部分(除了 A 的状态之外,B 还具有自己的内部状态)。 这两个模块之间的耦合似乎非常紧密。有什么建议可以减少它们的耦合吗? 谢谢!

I have an enum definition in one module(A), e.g. SUCCESS = 0, INVALID_REQ = 1 etc. Then I have another dll (module B) which has its own set of status enum. Once we add a new enum value in A, we have to manually add it to B since A is in .NET and B is C code. Beside, enum in A is only part of the status enum in B (B has its own internal status besides status from A).
This seems a very tight coupling between these two modules. Any suggestions to make them less coupled?
Thx!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

木格 2024-10-19 20:04:16

为什么不编写一个简单的脚本来在构建过程中根据文件生成这些枚举?如果你真的想将它们分开,你需要让某人成为主人并将其内容暴露给另一方..可能使用RCW..

Why not write a simple script that generates these enums based on a file during build? If you truly want to uncouple them, you will need to make someone a master and expose its content to the other side.. Likely using RCW..

再见回来 2024-10-19 20:04:16

在这里使用反射会很有趣。编写一个小程序,通过反射从模块 A 读取枚举,并生成一个 .h 文件以在 c 模块中使用。

What would be fun would be to use reflection here. Write a little program that reads the enum by reflection from module A, and generates a .h file for use in the c module.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文