c# - 我应该在哪一层声明枚举?

标签 c# architecture enums n-tier-architecture n-layer

我有一个 C# N 层项目,有 5 层: 1-基础设施 2-域 3-应用服务 4-分布式服务 5-演示

我想在我的项目中使用枚举。但我不知道哪一层描述它们。我对此有两个想法。

1-在Domain中声明枚举并通过WCF DataContract通过网络传递。

2- 在类库项目中声明枚举(例如:在公共(public)层中)并将其构建为 dll 并在所有层中使用它。

帮我选一个。

最佳答案

我想分享我对这个问题的看法:

  • 策略 1:域层定义枚举AddressType(具有 Home、Work...)。 服务层定义了另一个枚举AddressTypeDto,其中包含所有值Home、Work...),它们实际上从AddressType ==> AddressTypeDto映射。在表示层上,还将使用 AddressTypeDto 类型。

  • 策略 2:创建一个层(不是真正的层),其中包含常见的枚举类型,并在域/服务/演示的不同层中使用它

S1:它使所有层域/服务/表示独立,但需要更多类来表示相同的事物。

S2:它使所有层域/服务/表示独立,但需要它们依赖于“通用”dll。

我看到了实现这两种策略之一的应用程序。我将选择策略 2,因为它更有效。几乎应用程序经常有共同的东西,一些枚举类型应该存在。

关于c# - 我应该在哪一层声明枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24482646/

相关文章:

design-patterns - 在状态之间切换或循环的设计模式

相当于Rust枚举的C++

c# - 我可以用欧洲符号存储我的 DateTime 吗?

c# - C# 中的 VC++ __stdcall 回调

asp.net - ASP.NET 中面向服务的实际示例应用程序

ruby-on-rails - Restful 设计的建议?

c++ - 如何在 C++ 中解析枚举?

java - Enum 中的空静态方法

c# - 尝试安装没有强名称的程序集

c# - 不使用 Ghostscript DLL 将 PDF 转换为图像