static void Main(string[] args) { var hostings = new DirectoryInfo(Environment.CurrentDirectory).GetSubDirectory("hostings"); var kernel = new StandardKernel(); kernel.Bind(scaner => { scaner .FromAssembliesInPath(hostings.FullName) .Select(t => typeof(IHostingManager).IsAssignableFrom(t)) .BindAllInterfaces(); }); kernel.Bind(scaner => { scaner .FromAssembliesInPath(hostings.FullName) .Select(t => typeof(IMultiHostingManager).IsAssignableFrom(t)) .BindAllInterfaces(); }); kernel.Bind <ServicesCollection>().ToSelf().InSingletonScope(); kernel.Bind <TopologyConfigurator>().ToSelf().InSingletonScope(); kernel.Bind <IHostingProvider>().ToMethod(c => c.Kernel.Get <TopologyConfigurator>()).InSingletonScope(); kernel.Bind <HostingTreeBuilder>().ToSelf().InSingletonScope(); kernel.Bind <CredentialsFormatter>().ToSelf().InSingletonScope(); kernel.Bind <FileHostingClient>().ToSelf().InSingletonScope(); var configurator = kernel.Get <TopologyConfigurator>(); var client = kernel.Get <FileHostingClient>(); var commands = new CommandsCollection(); commands.AddCommandsProvider(configurator); commands.AddCommandsProvider(client); ConsoleApplication.Run(commands); }
private ConsoleApplication(CommandsCollection commands) { commands.AddCommandsProvider(this); this.commands = commands; }