static async Task Main(string[] args) { var builder = new ContainerBuilder(); builder.RegisterMediatR(typeof(MonsterCard).Assembly); builder.RegisterType <BoardManagerObject>().As <IBoardManager>(); var container = builder.Build(); var mountainRangerCard = new MountainRangerCard(); var squamation = new SquamationCard(); var combatResult = mountainRangerCard.Attacks(squamation); var notification = new CardDrawnNotification() { BoardManager = container.Resolve <IBoardManager>(), MonsterCard = mountainRangerCard }; var mediator = container.Resolve <IMediator>(); await mediator.Publish(notification); }