我应该在哪个层声明枚举?

 永和邮政 发布于 2023-01-07 09:58

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

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

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

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

帮我选一个.

3 个回答
  • 如果只需要在某个特定图层中使用它,则在该图层中声明它.如果要在所有层中使用它,则应在某个公共层中声明它,并且应将引用添加到使用它的所有层中.

    2023-01-07 10:01 回答
  • 这取决于您需要使用枚举所代表的值的位置.如果这些是您的表示层需要的值,那么这就是他们应该去的地方.如果它是您的服务层所依赖的东西,那么您需要将它们放在那里.

    我不确定最好的方法是将所有的枚举归结为一个位置.它们应该在应用程序中展开,位于依赖于它们的最低层,通常与使用枚举的类相同的命名空间并对它们执行一些逻辑.

    如果应用和域将使用它们,则在域中声明它们并通过网络传递值.

    2023-01-07 10:01 回答
  • 我会就这个问题分享我的意见:

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

    策略2:创建一个not really a layer包含常见枚举类型的layer(),并在Domain/Service/Presentation的不同层中使用它

    S1:它保持所有层的域/服务/表示独立,但需要更多的类来呈现相同的东西.

    S2:它保持所有层的域/服务/表示独立,但需要它们取决于"常见"dll.

    我看到了实现两种策略之一的应用程序.我会选择Strategy 2它,因为它更有效.几乎应用程序通常都有共同的东西,应该有一些枚举类型.

    2023-01-07 10:01 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有