internal ClusterActorSystem( ClusterConfiguration configuration, Assembly[] assemblies, Action <IServiceCollection> di, ActorInvocationPipeline pipeline, IActorRefInvoker invoker) : base(invoker) { Pipeline = pipeline; using (Trace.Execution("Orleans silo initialization")) { var builder = new SiloHostBuilder() .UseConfiguration(configuration) .ConfigureServices(services => { services.AddSingleton <IActorSystem>(this); services.AddSingleton(this); services.TryAddSingleton <IActorActivator>(x => new DefaultActorActivator(x)); services.AddSingleton <Func <MethodInfo, InvokeMethodRequest, IGrain, string> >(DashboardIntegration.Format); di?.Invoke(services); }); builder.ConfigureApplicationParts(apm => apm .AddFromAppDomain() .WithCodeGeneration()); Host = builder.Build(); } Silo = Host.Services.GetRequiredService <Silo>(); Initialize(Host.Services); }
internal ClusterActorSystem(ClusterConfiguration configuration, Action <IServiceCollection> di, ActorInvocationPipeline pipeline, IActorRefInvoker invoker) : base(invoker) { this.di = di; Pipeline = pipeline; current = this; configuration.UseStartupType <Startup>(); using (Trace.Execution("Orleans silo initialization")) { Host = new SiloHost(Dns.GetHostName(), configuration); Host.LoadOrleansConfig(); Host.InitializeOrleansSilo(); } Silo = Host.GetSilo(); Initialize(Silo.GetServiceProvider()); }