我想知道如果我们有一个多层架构和具有此枚举属性或字段的类(Domain,DTO,ViewModel),我应该在哪里定义枚举?在POCO课程内部或外部,我们需要在每一层重复此代码等吗?
答案 0 :(得分:3)
我们使用Domain,DTO,ViewModel ...分层架构,当我们定义需要跨层使用的枚举时,我们仅在DTO层中定义它们。这是因为根据定义,DTO层可供所有层访问。我们使用在类之外创建这样的共享枚举的标准,这样可以提高可读性(即EnumName.EnumValue vs ClassName.EnumName.EnumValue),但我想这是一个偏好问题。
答案 1 :(得分:0)
绝对不要重复代码,因为这可能会导致差异并且很难找到错误。我的建议是将这些东西放在一个通常引用的DLL程序集中,这样它就可以被任何其他应用程序层使用,而不会引入额外的依赖项。
答案 2 :(得分:0)
我个人在一个单独的文件中定义,例如,如果a具有枚举“Bla”,将在“Bla.cs”中定义,使用该枚举的任何代码都将使用“using”指令。但这完全是可选的,定义枚举可以访问的位置是命名空间,所以:
Application.Bla
或在同一名称空间中仅使用“Bla”访问它Aclass.Bla