当前位置: 首页>>代码示例>>C#>>正文


C# IWindsorContainer.RegisterWindsorInstallers方法代码示例

本文整理汇总了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;
        }
开发者ID:kantora,项目名称:ClusterKit,代码行数:78,代码来源:Bootstrapper.cs


注:本文中的IWindsorContainer.RegisterWindsorInstallers方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。