我在一个模块(A)中有一个枚举定义,例如SUCCESS = 0,INVALID_REQ = 1等。然后我有另一个dll(模块B),它有自己的一组状态枚举。一旦我们在A中添加了一个新的枚举值,我们就必须手动将它添加到B,因为A在.NET中,B是C代码。此外,A中的枚举只是B中状态枚举的一部分(B除了A的状态外,还有自己的内部状态)。 这似乎是这两个模块之间非常紧密的耦合。有什么建议可以减少它们的耦合吗? THX!
答案 0 :(得分:2)
为什么不编写一个简单的脚本,在构建期间根据文件生成这些枚举?如果你真的想要解开它们,你需要让某人成为主人并将其内容暴露给另一方。可能使用RCW ..
答案 1 :(得分:1)
在这里使用反射会有什么乐趣。编写一个程序,通过模块A的反射读取枚举,并生成一个.h文件,供c模块使用。