包装枚举的最佳方法是什么?

时间:2010-08-19 10:14:32

标签: c# enums wrapping

我有我的枚举,我不想在各层之间分享。

所以我觉得把它包起来会很整洁。

但是怎么样?有很多项目,manualy写下所有项目不是一个解决方案。 此外,enum正在生成。

我想保持智商。

2 个答案:

答案 0 :(得分:3)

好吧,您可以转换为int(或定义的基础类型,默认为int),但这很脆弱;如果有人删除了导致重新编号的条目,或者将7的含义从Blah.TrivialDetail更改为Blah.CriticalFail,则它不会保护您。

如果你想要智能感知,所有各方都需要知道关于这些数字的某些东西,所以IMO你也可以通过一些常见的汇编来分享枚举。

答案 1 :(得分:0)

一种方式(不那么优雅)是在程序集中创建另一个可以共享的枚举。您需要创建一些构建操作,以将生成的枚举从数据装配克隆到新的可共享枚举。如果生成的枚举位于单独的文件中,则将简单文件副本(在命名空间中进行更改)作为DAL项目的后构建事件或共享程序集项目中的预构建事件将起到作用。如果生成的文件包含其他一些内容,那么您需要使用您喜欢的语言(powershell,c#)进行一些文本处理,以提取枚举定义。