在没有MassTransit nuget的情况下实现MassTransit CorrelatedBy<Guid>接口。

问题描述 投票:0回答:1

构建我的第一个Saga状态机实现。我已经写了一个接口nuget包来共享Saga事件和命令,在执行和发布这些事件的服务之间。我通过基类为每个事件命令实现了Masstransit CorrelatedBy< Guid> 。

public class BaseSagaEvent : CorrelatedBy<Guid>, IBaseSagaEvent
    {
        public Guid CorrelationId { get; set; }

        ...
    }

我喜欢保持接口nugets(基本上只是接口和poco类的nugets),轻量级,没有nuget依赖(只是我对nuget地狱的经验).有没有一种方法可以实现CorrelatedBy,而不需要将整个Masstransit nuget添加到接口项目中,同时还能享受StateMachine的相关性?

nuget correlation masstransit
1个回答
0
投票

将消息自动关联到状态机saga的唯一方法是使用 "状态机关联"。CorrelatedBy<Guid> 接口。目前的代码没有办法通过名称、类型或其他方式自动确定相关标识符。

没有接口的事件必须使用所示的语法进行声明(与文档相同)。

Event(() => SomeSagaEvent, x => x.CorrelatedById(m => m.Message.Id))
© www.soinside.com 2019 - 2024. All rights reserved.