1

我在域模型中有一个枚举:

public enum MessageType
{
    Ad = 1,
    Ask = 2
}

我使用 DTO 将数据从服务层传输到 UI 层。

在控制器中,我需要从服务层获取某种类型的所有消息:

_messageService.GetAllAds(MessageType.Ad);

由于域模型未映射到 UI 中,我如何将其传递给 UI?

谢谢

4

2 回答 2

0

不久前,我在我的一个项目中遇到了这个问题。我最终将枚举复制到 UI 层,并且基本上有两个(几乎)相同的枚举(名称略有不同以区分它们)。本质上,它就像枚举的视图模型。

这不是一个很好的解决方案,如果我想出更好的东西,我可能会在以后重构我的项目,但它确实有效。这样做的一个好处是,您可以使用与 UI 相关的属性来装饰您的 UI 层枚举,这些属性在域层中根本没有意义。

于 2013-03-13T00:21:04.897 回答
0

你需要在你的控制器和服务之间提供一些共同的东西..无论是MessageType你当前使用的枚举还是其他东西..也许你想string在那里传递 a ,但我不推荐它。就我个人而言,我也不希望让控制器直接访问任何域实体(我使用视图模型代替),但对于枚举,我例外。

我的建议:允许控制器仍然使用该枚举。

于 2013-03-13T00:21:14.020 回答