【问题标题】:Using NServiceBus Outbox with CosmoDB persistance in ASP.NET Core Application在 ASP.NET Core 应用程序中使用 NServiceBus Outbox 和 Cosmos DB 持久性
【发布时间】:2021-07-16 22:36:10
【问题描述】:

我有一个 ASP.NET 核心应用程序,它使用通过 MediatR 实现的域驱动设计概念构建。我的应用程序将数据保存到 Azure Cosmos DB。我需要从我的 ASP.NET Core 应用程序中引发集成事件。我希望将NServiceBus.Persistence.CosmosDB 与发件箱一起使用。但是,NServiceBus 发件箱似乎只能在 NServiceBus 处理程序内部工作。

见:https://discuss.particular.net/t/outbox-in-an-asp-net-core-scenario/966

从上面的线程看来,我们可以使用 Sql Server 来实现这一点。但是,我希望让它与 Cosmos DB 一起使用。有没有人能够在 ASP.NET Core Web 应用程序中使用 NServiceBus 成功实现发件箱模式?任何指针,非常感谢。

【问题讨论】:

  • 没错。发件箱功能在传入消息的上下文中工作。

标签: asp.net-core azure-cosmosdb domain-driven-design nservicebus


【解决方案1】:

发件箱只能在 NServiceBus 处理程序的上下文中工作。如果您试图使域模型中的存储库接口不使用 NServiceBus,则可以定义存储库接口以获取对象上下文参数。比如——

public interface IEmployeeRepository
{
   void Create(Employee employee, object context); //pass messagehandlercontext
   void Update(Employee employee, object context); 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多