本文整理汇总了C#中IWindsorContainer.RegisterWindsorInstallers方法的典型用法代码示例。如果您正苦于以下问题:C# IWindsorContainer.RegisterWindsorInstallers方法的具体用法?C# IWindsorContainer.RegisterWindsorInstallers怎么用?C# IWindsorContainer.RegisterWindsorInstallers使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IWindsorContainer
的用法示例。
在下文中一共展示了IWindsorContainer.RegisterWindsorInstallers方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ConfigureAndStart
/// <summary>
/// Dependency injection configuration
/// </summary>
/// <param name="container">Dependency injection container</param>
/// <param name="args">
/// Startup parameters
/// </param>
/// <returns>The actor system</returns>
public static ActorSystem ConfigureAndStart(IWindsorContainer container, string[] args)
{
Console.WriteLine(@"Starting bootstrapper");
container.AddFacility<TypedFactoryFacility>();
container.Kernel.Resolver.AddSubResolver(new ArrayResolver(container.Kernel, true));
container.Register(Component.For<IWindsorContainer>().Instance(container));
container.RegisterWindsorInstallers();
Console.WriteLine(@"Preparing config");
var config = BaseInstaller.GetStackedConfig(container, CreateTopLevelConfig(args));
Log.Debug($"Cluster configuration: seed-nodes { string.Join(", ", config.GetStringList("akka.cluster.seed-nodes") ?? new List<string>())}");
Log.Debug($"Cluster configuration: min-nr-of-members { config.GetInt("akka.cluster.min-nr-of-members")}");
var roles = string.Join(", ", config.GetStringList("akka.cluster.roles") ?? new List<string>());
Log.Debug($"Cluster configuration: roles { roles}");
Log.Debug($"Cluster node hostname: { config.GetString("akka.remote.helios.tcp.hostname") }");
var publicHostName = config.GetString("akka.remote.helios.tcp.public-hostname");
if (!string.IsNullOrWhiteSpace(publicHostName))
{
Log.Debug($"Cluster node public hostname: { publicHostName }");
}
container.Register(Component.For<Config>().Instance(config));
Console.WriteLine(@"Config created");
// log configuration
LogEventLevel level;
if (!Enum.TryParse(config.GetString("ClusterKit.Log.minimumLevel"), true, out level))
{
level = LogEventLevel.Information;
}
var loggerConfig = new LoggerConfiguration().MinimumLevel.Is(level);
var configurators = container.ResolveAll<ILoggerConfigurator>();
configurators.ForEach(c => Log.Information("Using log configurator {TypeName}", c.GetType().FullName));
loggerConfig = configurators.Aggregate(
loggerConfig,
(current, loggerConfigurator) => loggerConfigurator.Configure(current, config));
var hostName = string.IsNullOrWhiteSpace(publicHostName)
? config.GetString("akka.remote.helios.tcp.hostname")
: publicHostName;
loggerConfig = loggerConfig.Enrich.WithProperty("hostName", hostName);
loggerConfig = loggerConfig.Enrich.WithProperty("roles", roles);
var logger = loggerConfig.CreateLogger();
Log.Logger = logger;
// log configuration finished
// performing prestart checks
BaseInstaller.RunPrecheck(container, config);
// starting Akka system
Console.WriteLine(@"starting akka system");
var actorSystem = ActorSystem.Create("ClusterKit", config);
actorSystem.AddDependencyResolver(new WindsorDependencyResolver(container, actorSystem));
container.Register(Component.For<ActorSystem>().Instance(actorSystem).LifestyleSingleton());
ServiceLocator.SetLocatorProvider(() => new WindsorServiceLocator(container));
Console.WriteLine(@"Bootstrapper start finished");
return actorSystem;
}