在哪里delcare枚举

问题描述:

C#MVC项目,哪里是最好的地方放置一个用于许多类的枚举?请继续阅读。在哪里delcare枚举

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

域模型的类(适当地)在模型/文件夹中。 视图模型的类位于ViewModel /文件夹中(我创建的)。 所以我们在看多个命名空间,没有戏剧,只是需要注意。

最初我打算创建一个静态类,并将这个枚举和其他全局访问的变量放在这里。但是我已经阅读过,最好(比较容易)将枚举从课程中提取出来,以免您每次想使用枚举时引用类名称。 classname.myenum。非常公平,同意。

在哪里可以创建这样的类文件和适当命名的命名空间是否有最佳做法?我的想法,因为枚举最初是在最低级别的域模型中需要的,所以在Model文件夹中创建一个类文件。并为我的域类和视图模型引用这个namespace.enum。

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

+0

只需注意,如果您在程序员堆栈交换上发布类似这样的“白板”问题,您可能会获得更多的曝光,因此会获得更多有价值的反馈。 –

+0

@ roryap谢谢。程序员Stack Exchange和这里有什么区别? –

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

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

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

我在ASP.NET MVC解决方案中为这种目标设置了一组文件夹。我把所有的枚举都放到了MyProjectName.Infrastructure.Common.Constants

我认为这是非常明智的,因为用Constans命名空间,你让其他开发者知道这些类型是常量。使用Common命名空间,你告诉别人这些东西是共享的。

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

+0

另外,我注意到在RacoonBlog示例中(从您提供的链接),/ Infrastructure文件夹包含其他(逻辑上相关的)子文件夹,例如AutoMapper,非常整洁! –