示例#1
0
        public Task StartAsync(CancellationToken cancellationToken)
        {
            _as       = ActorSystem.Create("bright", @"akka { stdout-loglevel = INFO
loglevel = DEBUG
log-config-on-start = on
loggers = [""Akka.Logger.Serilog.SerilogLogger, Akka.Logger.Serilog""]
actor { debug { lifecycle = on
unhandled = on } } }");
            _resolver = new MicrosoftDependencyResolver(_scopeFactory, _as);
            _logger.LogInformation("Starting up with actor dependency resolver of {Type}", _resolver.GetType());
            _supervisor = _as.ActorOf(_as.DI().Props <GamemasterSupervisor>()
                                      .WithSupervisorStrategy(SupervisorStrategy.DefaultStrategy));

            return(Task.CompletedTask);
        }
        public void BeginScope_should_return_a_scoped_container()
        {
            var services = new ServiceCollection();

            services.AddScoped <IFoo, Foo>();

            var provider = services.BuildServiceProvider();
            var resolver = new MicrosoftDependencyResolver(provider);

            using (var scope = resolver.BeginScope())
            {
                var foo = scope.GetService(typeof(IFoo)) as IFoo;
                int i   = foo.Increment();
                Assert.AreEqual(1, i);
            }

            var bar = provider.GetService(typeof(IFoo)) as IFoo;
            int b   = bar.Increment();

            Assert.AreEqual(1, b);
        }