2008-10-22 72 views
1

在C#中,我使用定义枚举的库。我希望允许我的代码的消费者(在不同的程序集中)将枚举值作为参数传递给我的一个函数,而无需自己引用底层库。暴露库类中的枚举

有没有办法让我的图书馆的枚举公开给我的消费者?

回答

7

您可以用您想要支持的值定义您自己的枚举值,将其展示给您的客户,并在调用之前将其转换为库的枚举值。由于枚举只是幕后的数字,所以很容易将一个枚举的值转换为另一个值。

+0

在一分钟内你有三起三的答案吗? – Will 2008-10-22 11:28:07

3

您可以提供一个接受int的重载,描述哪些值是有效的,然后自己执行转换。或者,您可以在库中提供不同的枚举,然后在调用第二个库之前将其转换。

1

我真的不知道,这是理性的原因是这样做的(“我的程序集中的类型的消费者调用方法”和“消费者没有我的程序集作为参考”),但有2种方法。

第一个(推荐): 您应该将您的装配拆分为两个。一个使用枚举类型定义,另一个使用函数。消费者只会参考“第一”组装。

第二(不推荐): 可以在参数而不是枚举一个(为sbyte /(U)短/(U)INT /(U)长期使用

但我认为,你有一个对象模型的匹配设计。