【发布时间】:2017-01-04 04:38:39
【问题描述】:
我想知道如果我们有一个具有此枚举属性或字段(域、DTO、ViewModel)的多层架构和类,我应该在哪里定义枚举?在 POCO 类内部或外部,在每一层中我们是否需要重复此代码等?
【问题讨论】:
标签: c# .net architecture automapper
我想知道如果我们有一个具有此枚举属性或字段(域、DTO、ViewModel)的多层架构和类,我应该在哪里定义枚举?在 POCO 类内部或外部,在每一层中我们是否需要重复此代码等?
【问题讨论】:
标签: c# .net architecture automapper
我们使用 Domain、DTO、ViewModel... 分层架构,当我们定义需要跨层使用的枚举时,我们仅在 DTO 层中定义它们。这是因为根据定义,所有层都可以访问 DTO 层。我们使用在类外部创建此类共享枚举的标准,以提高可读性(即 EnumName.EnumValue 与 ClassName.EnumName.EnumValue),但我想这是一个偏好问题。
【讨论】:
绝对不要重复代码,因为这可能会导致差异和难以找到错误。我的建议是将这些东西放在一个常用引用的 DLL 程序集中,这样它就可以被您的任何其他应用程序层使用,而不会引入额外的依赖项。
【讨论】:
我个人在一个单独的文件中定义,例如,如果 a 具有枚举“Bla”,则将在“Bla.cs”中定义,任何使用该枚举的代码都将使用“using”指令。但这完全是可选的,定义枚举可以访问的位置是命名空间,所以:
Application.Bla 访问它,或者在同一命名空间中仅通过“Bla”访问它Aclass.Bla 访问它
【讨论】: