0
我在下面有這個佐賀課程代碼,問題部分在代碼中註釋。請注意代碼的簡化,因爲我刪除了無處不在的語言和其他細節以便於閱讀。使用Bus.Send()和使用佐賀Handler內部的API服務
public class MessageSaga : Saga,
IPointBy<SendMessageCommand>, IHandle<RequestProcessingCommand>
{
private readonly IServices _services;
public MessageSaga(IServices services,
IBus bus, IEventStore eventStore, IRepository repository)
: base(bus, eventStore, repository)
{
_services = services;
}
public void Handle(SendMessageCommand message)
{
var msg = MessageAggregate.CreateNew(message.Id, message.Text);
Repository.Save(msg);
// This is my Question #1
var request = new RequestProcessingCommand(message.Id, message.Text);
Bus.Send(request);
}
public void Handle(RequestProcessingCommand message)
{
var item = Repository.GetById<MessageAggregate>(message.Id);
// This is my Question #2
var result = _services.ProcessMessage(message.Text);
var response = ProcessItem.Generate(item, result);
Repository.Save(reponse);
}
}
所以,在上面的代碼中,我有兩個問題:
在題號1,因爲「公交車」是在佐賀類可用,這是使用Bus.Send的正確方法()鏈接到其他處理程序,還是應該在Aggregate類中進行此操作?
如第二個問題,我在域外有這個「_services」Web API,這是在處理程序中使用它的正確方法,還是應該在Aggregate類中進行此操作。
所有我的代碼完美地工作,我甚至做沒有任何問題的負載測試。不知怎的,我感到懷疑,因爲處理程序假設是簡單的事件保存。謝謝。