在数据访问层访问枚举

Accessing enum in data access layer

有什么方法可以 use/access 包含在数据访问层项目中的枚举而不引用实际项目(以便尝试将某些事情分开)?

例如,我有一个项目 UI 引用了一个项目 MIDDLEMAN 和另一个项目 DAL。如果我的 UI 引用了 MIDDLEMAN,后者又引用了包含枚举的 DAL,我可以从 UI 访问枚举吗?

您可以将枚举移动到一个单独的项目中,并将其添加到您不想合并的两个项目中:)

如果我在 n 层层程序上工作,我通常会创建一个项目名称 "DataTypes" 来存储通过任何其他层项目共享的数据。

所以我可以将枚举或 'data class' 包含到需要使用它们的项目中,而无需复制它们或将引用从一个项目层添加到另一个项目层。

你基本上有两个选择:

首先是创建一个单独的项目,其他层都可以从中访问和使用枚举。如果您这样做,请确保该项目尽可能简单。我的意思是要注意不要在其中添加与其他项目直接相关的逻辑,这会产生不需要的依赖关系。

您的另一个选择是在 MiddleMan 层中创建一个类似的枚举,并将 DAL 层中的枚举映射到这个新枚举。由于您的 UI 可以引用 MiddleMan,它应该能够使用这个新的枚举,同时仍然保持较低级别的枚举无法访问。然后必须在映射逻辑中调整对较低级别枚举的任何更改。