【问题标题】:Where to delcare an enum在哪里声明一个枚举
【发布时间】:2013-12-15 05:14:25
【问题描述】:

C# MVC 项目,放置在多个类中使用的 Enum 的最佳位置在哪里?请继续阅读。

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

领域模型的类(适当地)在 Model/ 文件夹中。 视图模型的类位于 ViewModel/ 文件夹(我创建的)中。 因此,我们正在研究不止一个命名空间,没有戏剧性,只是需要注意的一点。

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

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

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

【问题讨论】:

  • 请注意,如果您在程序员堆栈交换中发布此类“白板”问题,您可能会获得更多曝光率,从而获得更多有价值的反馈。
  • @roryap 谢谢。 Programmers Stack Exchange 和这里​​有什么区别?

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


【解决方案1】:

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

其实枚举不是变量,而是类型。

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

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

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

您可以使用here 找到有关基础架构命名空间的一些示例。

【讨论】:

  • 另外,我在 RacoonBlog 示例(来自您提供的链接)中注意到 /Infrastructure 文件夹包含其他(逻辑相关)子文件夹,例如 AutoMapper,非常整洁!!!
猜你喜欢
  • 1970-01-01
  • 2014-08-20
  • 2011-01-31
  • 1970-01-01
  • 2011-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-11
相关资源
最近更新 更多