如何从域层禁用 UI 中的枚举值

本文关键字:UI 枚举 | 更新日期: 2023-09-27 18:35:51

我有一个应用程序,其中域和用户界面是单独的层。两者都可以访问基础结构层中定义的某些枚举。不同的团队在不同的层上工作。

枚举的某些值尚未在域中完全实现代码,或者可能在应用的试用版中禁用。我想做的是在 UI 的下拉菜单中显示这些值,但在完全实现域代码之前禁用它们。此时,无需在 UI 层中进行任何其他工作,因此域团队可以简单地启用它。

实现这一目标的最佳方法是什么?

  • 我可以在枚举值上设置属性吗?

  • 我是否需要在 DTO 上指定它或在映射器上指定它到 DTO?

  • 别的?

不担心如何做UI部分,只担心如何将信息传递给UI。不是问实现本身,而是一个概念。值得一提的是,后端是C#,前端是HTML5,MVVM使用 MVC.NET,WCF,Unity。

如何从域层禁用 UI 中的枚举值

我已经弄清楚了,它实际上非常简单。

您确实可以为单个枚举值添加属性(而不是枚举本身更常见),这些属性不需要自定义,尽管它们可以。

MSDN 在此处提供了可用属性的完整列表。

我最终使用了这个: [EditorBrowsableAttribute(EditorBrowsableState.Never)]

其中EditorBrowsableState.Never用于那些尚未实现并在实现时更改为EditorBrowsableState.Always的枚举值。

您可以为枚举创建自定义属性,并根据环境筛选该属性。不过,我不确定这是好的做法还是坏做法。