我已经看到 MediatR 和 CQRS 的组合主要用于 Web 项目(特别是在 MVC 项目中)。我们可以毫无问题地在控制器操作中调用MediatR的Send方法。
var result = await _mediator.Send(command);
是否适合在 Windows 服务应用程序中使用这种组合?我找不到任何在 Windows 服务应用程序中使用 MediatR 和 CQRS 的文章。
我已经看到 MediatR 和 CQRS 的组合主要用于 Web 项目(特别是在 MVC 项目中)。我们可以毫无问题地在控制器操作中调用MediatR的Send方法。
var result = await _mediator.Send(command);
是否适合在 Windows 服务应用程序中使用这种组合?我找不到任何在 Windows 服务应用程序中使用 MediatR 和 CQRS 的文章。
MediatR 只是内部消息传递。您可以在您喜欢的任何类型的应用程序中使用它。
我想我了解 OP 的来源。
在 Web 应用程序中使用 MediatR 时,很容易看到组成应用程序的各个部分。每个控制器操作将有一个请求/处理程序/可选,每个操作都彼此干净地分开。
在 Windows 服务中,没有单独操作的概念。只有一个入口点,因此知道在哪里使用 MediatR 可能会令人困惑。
我相信一个好方法是使用对应于单个入口点的单个请求/处理程序/响应。这意味着将所有 Windows 服务逻辑放在处理程序中。
如果这导致处理程序非常长,那么随着新的抽象和消除代码重复的机会的发现不断重构。这将与您在 MediatR 支持的 Web 应用程序中使用的方法完全相同。