是NServiceBus处理程序';s成员是否可以安全地存储与消息相关(或不相关)的数据?

是NServiceBus处理程序';s成员是否可以安全地存储与消息相关(或不相关)的数据?,nservicebus,Nservicebus,是否重用处理程序来处理另一条消息 public abstract class SomeHandler : IHandleMessages<MyEvent> { public IBus Bus { get; set; } public String Message { get; set; } public void Handle(T message) { Message = "Test"; SomeInstanceMet

是否重用处理程序来处理另一条消息

public abstract class SomeHandler : IHandleMessages<MyEvent>
{
    public IBus Bus { get; set; }
    public String Message { get; set; }

    public void Handle(T message)
    {
        Message = "Test";
        SomeInstanceMethod();
    }

    public void SomeInstanceMethod()
    {
        if (Message = ...) // Can i use Message here?
            return;
    }
}
公共抽象类SomeHandler:IHandleMessages
{
公共IBus总线{get;set;}
公共字符串消息{get;set;}
公共无效句柄(T消息)
{
Message=“Test”;
SomeInstanceMethod();
}
public void SomeInstanceMethod()
{
if(Message=…)//我可以在这里使用Message吗?
返回;
}
}

默认情况下,消息处理程序配置为ComponentCallModelEnum.Singlecall,这意味着对组件的每个调用都将在新实例上执行

因此,两条消息将由类的不同实例处理,不能共享状态


但是,这里您要做的是设置一个类属性,然后调用类中检索该属性的另一个方法。那很好。然而,在我看来,这有点令人困惑,如果这就是你想要的,你最好把值作为参数传递给另一个方法。

谢谢你,大卫。关于将值作为参数传递的观点:我提供的代码只是对我的问题的帮助。我同意现实生活中不应该存在这种代码。