目前,我正在使用CQRSLite框架,并好奇如何使用MassTransit作为总线实现。
我目前面临的问题是,如何在MassTransit端正确注册使用者,以便将消息(命令和事件)路由到像这样的处理程序
public class InventoryCommandHandlers : ICommandHandler<CreateInventoryItem>
{
public void Handle(CreateInventoryItem message)
{
// do some job...
}
}
public class InventoryListView : IEventHandler<InventoryItemCreated>
{
public void Handle(InventoryItemCreated message)
{
// do some job...
}
}发布于 2017-01-24 08:54:38
您可以始终实现两个接口:
public class InventoryCommandHandlers :
ICommandHandler<CreateInventoryItem>,
IConsumer<CreateInventoryItem>
{
public void Handle(CreateInventoryItem message)
{
// do some job...
}
public Task Consume(CreateInventoryItem message)
{
Handle(message);
return Task.FromResult(true);
}
}
public class InventoryListView :
IEventHandler<InventoryItemCreated>,
IConsumer<InventoryItemCreated>
{
public void Handle(InventoryItemCreated message)
{
// do some job...
}
public Task Consume(InventoryItemCreated message)
{
Handle(message);
return Task.FromResult(true);
}
}虽然 CQRSLite似乎是为进程内使用而设计的,但在分布式上下文中使用它并没有真正的好处。
我强烈建议查看原始的m存储库并实现您自己的基础库,它只需1/2天,您就可以更好地理解事情是如何工作的。
您还可以通过查看AggregateSource和百忧解来获得一些灵感,甚至可能得到它们的使用,这些都是非常好的例子。
https://stackoverflow.com/questions/41819170
复制相似问题