Skip to main content

Chapter 2: Dependency Injection

Chapters: 1 | 2 | 3 | 4 | 5

Actors often need services such as logging or databases. Dependency Injection (DI) can create actors with those dependencies while keeping code testable.

Using DI in C#

using Microsoft.Extensions.DependencyInjection;
using Proto;

var services = new ServiceCollection();
services.AddSingleton<IMyService, MyService>();
var provider = services.BuildServiceProvider();

var system = new ActorSystem();
var props = Props.FromProducer(() => new MyActor(provider.GetRequiredService<IMyService>()));
var pid = system.Root.Spawn(props);