在哪里宣布枚举

时间:2013-12-15 05:14:26

标签: c# asp.net-mvc enums global-asax

C#MVC项目,在哪个地方放置一个用于多个类的Enum?请继续阅读。

我有一个域模型中需要的枚举。由于我使用的是基于此域模型的视图模型,因此视图模型中也需要枚举。

域模型的类(适当地)在Model /文件夹中。 视图模型的类位于ViewModel /文件夹(我创建的)中。 所以我们正在考虑不止一个名称空间,没有戏剧性,只需注意一些事项。

最初我打算创建一个静态类,并将此枚举和任何其他全局访问的变量放在这里。但我已经读过,最好(也就是说更容易)将枚举放在一个类中,以避免每次想要使用枚举时引用类名,例如: classname.myenum。很公平,同意。

是否有关于在何处创建此类文件以及适当命名的命名空间的最佳做法?我的想法,因为enum最初是在域模型中需要的,最低级别,在Model文件夹中创建一个类文件。并为我的域类和视图模型引用此namespace.enum。

或者,Global.asax文件怎么样?这是放置全局变量的好地方吗?

1 个答案:

答案 0 :(得分:1)

  

或者,Global.asax文件怎么样?这是一个好地方   全局变量?

实际上,枚举不是变量,它是一种类型。

前几天我有同样的问题。我有一个模型和viewmodel,我需要一种方法来共享它们之间的枚举。

我在ASP.NET MVC解决方案中有一组用于此类目标的文件夹。我把所有的枚举都放到MyProjectName.Infrastructure.Common.Constants

我认为这很明智,因为使用Constans命名空间,您可以让其他开发人员知道这些类型是常量。使用Common命名空间,您告诉其他人这些内容是共享的。

您可以使用here在基础结构命名空间中找到一些示例。