【发布时间】:2013-11-12 02:41:31
【问题描述】:
我正在开发一个 N 层 Web 应用程序(UI/Service/DAL)。
在调用某个服务时,服务层内部有时会出现需要用户通知的事件。
我应该如何将这些消息从服务层传递到 UI 层?
请务必注意,这些消息不是错误,而只是某些事件的通知。
【问题讨论】:
-
这些事件是在服务调用完成后发生还是在服务调用期间发生?如果是前者,你可以把消息放在返回值中。您要显示什么类型的消息?如果是像“你确定要删除X吗?”这样的确认,你的UI应该解决这个问题,而不是你的服务。请用一个实际的例子,最好是一些代码来解释你想要做什么。
-
消息的类型有点像这样:'你已经成功创建了你的第一篇文章,恭喜!'不知道为什么,但我一直使用 BOOLEAN 作为我的服务调用的返回类型...也请对此发表评论。
-
这就是可以使用 ViewModel 的地方,
string ResultMessage。您的 UI 层(例如,MVC 控制器)将result.Success布尔值转换为字符串消息,例如使用资源文件,并将其分配给视图模型。这样您就可以在不更改服务的情况下更改 UI 语言。 -
在我的服务层调用中使用 POCO 作为结果类型好吗?顺便说一句,模型重用有问题吗? (在视图中用作模型,在服务层中用作结果类型/参数传递)
-
这是一个完全不同的问题,请参阅POCO classes and ViewModels in MVC3 获取一些意见。正如那里所说,这取决于项目的规模。如果您有平面的、一对一的映射实体和视图,请继续。不过,您只是遇到了模型重用的问题:您不想将特定于视图的属性添加到实体模型中。如果需要,可以使用
[NotMapped]。
标签: .net design-patterns service-layer n-layer