在模型和视图模型之间共享枚举

时间:2013-12-12 12:44:32

标签: c# asp.net-mvc design-patterns

在模型和视图模型之间共享枚举是一个好主意吗?

我有很多常见的枚举分享如下:

public enum Month { January, February, March, April, May, June, July, August, September, October, November, December }

public enum WeekDay {
    [EnumDescription("working day")]
    WorkingDay,
    [EnumDescription("weekend")]
    WeekEnd,
    Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
}

我现在在viewmodel中使用这些枚举,我想将它们移动到我的模型的命名空间。但它会使我的观点依赖于模型:

@using MyApp.Model

在项目中分享枚举的最佳位置是什么?为什么?

2 个答案:

答案 0 :(得分:4)

绝对是个好主意。有时最简单的方法是构建一个单独的程序集,可能后缀为.Common。然后,所有程序集都可以引用它而不会出现循环引用问题。

答案 1 :(得分:1)

这样的通用枚举就像任何其他横切关注点一样:它们本身不是任何层的一部分,但应该放在单独的命名空间或项目中,因为它们并不特定于任何架构层。这样,您也可以摆脱任何不需要的依赖。