在模块之间转换枚举

时间:2011-01-18 22:28:47

标签: c# c enums module

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

在这里使用反射会有什么乐趣。编写一个程序,通过模块A的反射读取枚举,并生成一个.h文件,供c模块使用。