Ejemplo n.º 1
0
    public Task Run(string[] args)
    {
        ICommandLineTask task = kernel.Resolve <ICommandLineTask>(args[1]);

        Console.WriteLine(task.HelpText);
        return(Task.CompletedTask);
    }
Ejemplo n.º 2
0
    private static async Task Run(string[] args)
    {
        HttpConnectionSettings settings = new(
            ConfigurationManager.AppSettings["UrlScheme"],
            Convert.ToInt32(ConfigurationManager.AppSettings["Port"]));
        IWindsorContainer container =
            new WindsorContainer()
            .Register(Component.For <HttpConnectionSettings>().Instance(settings))
            .Register(
                Classes.FromThisAssembly()
                .BasedOn <ICommandLineTask>()
                .Configure(x =>
                           x.LifeStyle.Transient.Named(
                               x.Implementation.Name.Replace("CommandLineTask", string.Empty)))
                .WithServiceFromInterface(typeof(ICommandLineTask)));

        if (args.Length < 1)
        {
            Usage(container);
            return;
        }

        try
        {
            ICommandLineTask task = container.Resolve <ICommandLineTask>(args[0]);
            await task.Run(args);
        }
        catch (Exception e)
        {
            Logger.Error(e, "Unhandled exception");
        }
    }