应该如何在 MassTransit 初始化 CorrelationId

How should be initialized CorrelationId at MassTransit

我想使用内置界面 CorrelatedBy<TKey> 来跟踪我的消息,但我不太明白:我是否应该自己初始化它,例如,在我的消息(命令)的构造函数中?

public class RegisterCallback : IRegisterCallback
{
    public RegisterCallback()
    {
        CorrelationId = Guid.NewGuid();
    }

    public Guid RequestId { get; set; }
    public Guid CorrelationId { get; }
}

您应该通过将其传递给构造函数或以其他方式将其生成为构造函数的一部分来对其进行初始化。

public RegisterCallback(Guid correlationId) {...}

或者您可以使用 NewId 生成它以获得有序标识符。

public RegisterCallback()
{
    CorrelationId = NewId.NextGuid();
}

此外,如果您想使用内置支持,您的界面应该包含 CorrelatedBy<Guid>

public interface IRegisterCallback :
    CorrelatedBy<Guid> {...}