1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
var services = new ServiceCollection();

services.AddLogging();
services.AddCap(x =>
{
	x.UseInMemoryStorage();
	x.UseInMemoryMessageQueue();
});

services.AddSingleton<IMySubscribe, EventHolder>();
_provider = services.BuildServiceProvider();

var bootstrap = _provider.GetService<IBootstrapper>();
bootstrap?.BootstrapAsync(default).Wait();

要点:

  • 事件处理类(上文的EventHolder)必须继承自ICapSubscribe,必须在容器中添加事件处理的类;
  • 显式的调用CAPBootstrapAsync方法,启动CAP
  • ICapPublisher.PublishAsync中包含的对象,需有默认构造,以便序列化;