Automapper和枚举属性

时间:2017-01-03 19:48:47

标签: c# .net architecture automapper

我想知道如果我们有一个多层架构和具有此枚举属性或字段的类(Domain,DTO,ViewModel),我应该在哪里定义枚举?在POCO课程内部或外部,我们需要在每一层重复此代码等吗?

3 个答案:

答案 0 :(得分:3)

我们使用Domain,DTO,ViewModel ...分层架构,当我们定义需要跨层使用的枚举时,我们仅在DTO层中定义它们。这是因为根据定义,DTO层可供所有层访问。我们使用在类之外创建这样的共享枚举的标准,这样可以提高可读性(即EnumName.EnumValue vs ClassName.EnumName.EnumValue),但我想这是一个偏好问题。

答案 1 :(得分:0)

绝对不要重复代码,因为这可能会导致差异并且很难找到错误。我的建议是将这些东西放在一个通常引用的DLL程序集中,这样它就可以被任何其他应用程序层使用,而不会引入额外的依赖项。

答案 2 :(得分:0)

我个人在一个单独的文件中定义,例如,如果a具有枚举“Bla”,将在“Bla.cs”中定义,使用该枚举的任何代码都将使用“using”指令。但这完全是可选的,定义枚举可以访问的位置是命名空间,所以:

  1. 如果您在名称空间“应用程序”中定义,则在Application.Bla或在同一名称空间中仅使用“Bla”访问它
  2. 如果您在名为“Aclass”的类中定义,只要您将其定义为公共类,您可以通过Aclass.Bla
  3. 访问它