处理程序是否会重复使用以继续发送其他消息?
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;
}
}
答案 0 :(得分:2)
默认情况下,消息处理程序配置为ComponentCallModelEnum.Singlecall,这意味着组件上的每个调用都将在新实例上执行。
因此,两个消息将由该类的不同实例处理,并且不能共享状态。
但是,您在此处设置了一个类属性,然后在类中检索另一个检索该属性的方法。那会很好。但是,在我看来,这有点令人困惑,如果这就是你所追求的,你可能最好将值作为参数传递给另一个方法。