是否有任何理由不在传奇数据中重复使用NServiceBus消息(IMessage
)?我的意思是有一个消息是这样的:重复使用NServiceBus消息传奇数据
public class Order : IMessage
{
public virtual List<TillOrderLine> OrderLines { get; set; }
}
public class TillOrderLine : IMessage { ... }
然后还要在这样的传奇和传奇数据使用它:
public class OrderProcessingSaga :
Saga<OrderProcessingSagaData>,
IAmStartedByMessages<Order> { ... }
public class OrderProcessingSagaData : ISagaEntity
{
public virtual Guid Id { get; set; }
public virtual string Originator { get; set; }
public virtual string OriginalMessageId { get; set; }
// The message data is stored by the saga here.
public virtual Order Order { get; set; }
}
我认识到,该消息被传输层存储(MSMQ),而传奇数据持续到数据库与传奇。它适用于我目前的使用情况,似乎更加优雅地重用该类,而不是为消息创建一个,而为事务存储创建另一个。
我想知道这种方法是否有任何问题?
谢谢mookid,这很有道理。我没有注意到TillOrderLine中的IMessage - 很好的抓住:) – 2011-06-07 08:20:50