在模型和视图模型之间共享枚举是一个好主意吗?
我有很多常见的枚举分享如下:
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
在项目中分享枚举的最佳位置是什么?为什么?
答案 0 :(得分:4)
绝对是个好主意。有时最简单的方法是构建一个单独的程序集,可能后缀为.Common
。然后,所有程序集都可以引用它而不会出现循环引用问题。
答案 1 :(得分:1)
这样的通用枚举就像任何其他横切关注点一样:它们本身不是任何层的一部分,但应该放在单独的命名空间或项目中,因为它们并不特定于任何架构层。这样,您也可以摆脱任何不需要的依赖。