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

3

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

我有许多通用的枚举值要共享,例如:

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个回答

5

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


2

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接