0

我已经看到 MediatR 和 CQRS 的组合主要用于 Web 项目(特别是在 MVC 项目中)。我们可以毫无问题地在控制器操作中调用MediatR的Send方法。

var result = await _mediator.Send(command);

是否适合在 Windows 服务应用程序中使用这种组合?我找不到任何在 Windows 服务应用程序中使用 MediatR 和 CQRS 的文章。

4

2 回答 2

0

MediatR 只是内部消息传递。您可以在您喜欢的任何类型的应用程序中使用它。

于 2018-06-06T11:29:39.933 回答
0

我想我了解 OP 的来源。

在 Web 应用程序中使用 MediatR 时,很容易看到组成应用程序的各个部分。每个控制器操作将有一个请求/处理程序/可选,每个操作都彼此干净地分开。

在 Windows 服务中,没有单独操作的概念。只有一个入口点,因此知道在哪里使用 MediatR 可能会令人困惑。

我相信一个好方法是使用对应于单个入口点的单个请求/处理程序/响应。这意味着将所有 Windows 服务逻辑放在处理程序中。

如果这导致处理程序非常长,那么随着新的抽象和消除代码重复的机会的发现不断重构。这将与您在 MediatR 支持的 Web 应用程序中使用的方法完全相同。

于 2018-07-17T15:26:58.000 回答